Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 12415|Jawab: 1

[C] C++ Ringkasan metode yang mereferensikan Lib dan Dll

[Salin tautan]
Diposting pada 02/07/2019 17.06.54 | | |
1. Apa itu LIB pustaka koneksi statis dan apa itu DLL pustaka tautan dinamis?     
Pustaka tautan statis dan dinamis berbagi kode, keduanya dalam format biner



2. Perbedaan antara LIB pustaka tautan statis dan DLL pustaka tautan dinamis
Jika Anda menggunakan pustaka yang ditautkan secara statis, semua instruksi dalam lib langsung disertakan dalam file EXE yang dihasilkan. Pustaka tautan dinamis dinamis tidak harus disertakan dalam file EXE akhir, yang dapat direferensikan dan dibongkar secara "dinamis" saat file EXE dieksekusi. Perbedaan lainnya adalah pustaka tautan statis tidak dapat lagi berisi pustaka tautan dinamis atau statis lainnya, sedangkan pustaka tautan dinamis dapat berisi pustaka tautan dinamis atau statis lainnya.



3. Metode panggilan pustaka tautan statis:
Mari kita bertahan untuk menghasilkan file lib:

VS2017--> Membuat pustaka statis proyek-->windows desktop--> baru proyek, nama proyeknya adalah Libtest



Functem.h dan functem.cpp baru

functem.h:

#pragma sekali
#include "stdafx.h"
#ifndef _functem_H
#define _functem_H
int functem(int a, int b);
#endif
functem.cpp:

#include "functem.h"
#include "stdafx.h"

int functem(int a, int b)
{
        mengembalikan a + b;
}
Kemudian buat proyek, dan akan ada dua file, Libtest.lib dan Libtest.pdb, di direktori Debug

Saat menelepon, diperlukan tiga langkah:

1. Salin Libtest.lib dan functem.h ke direktori penelepon; seperti yang ditunjukkan pada gambar di bawah ini:



2. Tambahkan #include "functem.h" di atas file cpp yang memanggil

3. Tambahkan #pragma comment(lib, "Libtest.lib") di atas file cpp yang memanggil



Seperti yang ditunjukkan pada gambar di atas, panggilan telah berhasil.



4. Metode panggilan pustaka tautan dinamis:
Membuat proyek baru - > pustaka tautan dinamis dengan nama proyek Dlltest

Buat Dlltest.h baru:

#pragma sekali
#ifndef __CDLL_H__
#define __CDLL_H__
extern "C" int _declspec(dllexport) add(int x, int y);
#endif
Dlltest.cpp:

#include "stdafx.h"
#include "Dlltest.h"
int add(int x, int y)
{
        mengembalikan x + y;
}
Hasilkan proyek, di direktori Debug ada:



Proses panggilan:

1. Salin Dlltest.dll, Dlltest.lib dan Dlltest.h dan salin ke direktori penelepon; seperti yang ditunjukkan pada gambar di bawah ini:



PS: Di sini, sebenarnya, Dlltest.lib hanya digunakan saat mengkompilasi tautan pengkompilasi, jadi setelah program dibuat, Anda tidak dapat menyertakan file lib, hanya file dll, dan penggunaan sebenarnya adalah file dll. Singkatnya, ketiga file perlu disalin, tetapi .h dan .lib digunakan untuk mengkompilasi tautan, dan hanya .dll yang harus ditempatkan di direktori akhir yang dihasilkan.

2. Tambahkan #include "Dlltest.h" di atas file cpp yang disebut

3. Tambahkan #pragma comment(lib, "Dlltest.lib") di atas file cpp yang memanggil



Panggilan berhasil!
---------------------
Penulis: Burung
Sumber: CSDN
Asli: https://blog.csdn.net/wcc27857285/article/details/84615891
Pemberitahuan Hak Cipta: Artikel ini adalah artikel asli oleh blogger, silakan lampirkan tautan posting blog untuk dicetak ulang!





Mantan:1. Bangun courseware terbaru
Depan:Penulisan tipe LPSTR MFC
Diposting pada 16/12/2023 13.10.26 |
Cepat:Penulis dilarang atau konten yang dihapus secara otomatis diblokir
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com