一、基本知識
1、DLL是一個包含可由多個程序同時使用的代碼和數(shù)據(jù)的庫。使用dll可以提高代碼的復(fù)用率,簡化部署與安裝。
二、使用方法
使用封裝好的dll文件有兩種方式,一種需要lib庫;另一種不需要lib庫,使用反射獲取dll。分別為加載時動態(tài)鏈接和運行時動態(tài)鏈接。
1、加載時動態(tài)鏈接
在加載時動態(tài)鏈接中,應(yīng)用程序像調(diào)用本地函數(shù)一樣對導(dǎo)出的DLL函數(shù)進行顯示調(diào)用。要使用加載時動態(tài)鏈接,需要在編譯和鏈接應(yīng)用程序時提供頭文件和導(dǎo)入庫文件(.lib)。
2、運行時動態(tài)鏈接
在運行時動態(tài)鏈接中,應(yīng)用程序調(diào)用LoadLibrary函數(shù)或LoadLibraryEx函數(shù)以在運行時加載DLL。成功加載DLL后,可以使用GetProcAddress函數(shù)獲得要調(diào)用的導(dǎo)出的DLL函數(shù)的地址。在使用運行時動態(tài)鏈接時,不需要使用導(dǎo)入庫文件。
以調(diào)用以下三個文件為例:
方法一:加載時動態(tài)鏈接
1、將.dll文件、.lib文件、.h文件拷貝到目標工程的目錄下
2、在目標工程下設(shè)置對應(yīng)的lib庫目錄
在頭文件"CSCInterface.h"中聲明接口函數(shù):
- int __stdcall GetCSCInterfaceVersion(char *version);
- bool __stdcall OpenGuideLight();
將CSCInterface.h文件添加 .cpp文件即可使用
#include "CSCInterface.h"
3、在此基礎(chǔ)上加載時動態(tài)鏈接還有以下方式,直接在.cpp文件下使用
- using namespace std;
- #pragma comment(lib,"..\\release\\CSCInterface.lib")
- extern "C" _declspec(dllimport) int GetCSCInterfaceVersion(char *version);
- extern "C" _declspec(dllimport) bool OpenGuideLight();
參考:https://www.jianshu.com/p/29ffeb66042e
三、解決調(diào)用dll文件時出現(xiàn)“無法找到“xxx.exe”的調(diào)試信息,或者調(diào)試信息不匹配。未使用調(diào)試信息生成二進制文件?!眴栴}
首先打開菜單 項目->項目屬性頁
1、選擇 配置屬性->鏈接器->調(diào)試->生成調(diào)試信息 改為 是
聯(lián)系客服