在C++中調用DLL(Dynamic-link library,動態鏈接庫)的方法有以下幾種:
LoadLibrary
函數加載DLL并獲取其句柄,然后使用GetProcAddress
函數獲取DLL中導出函數的地址,最后使用函數指針調用導出函數。HINSTANCE hDll = LoadLibrary("dllname.dll");
if (hDll != NULL) {
typedef void (*MyFunction)();
MyFunction myFunc = (MyFunction)GetProcAddress(hDll, "functionName");
if (myFunc != NULL) {
myFunc(); // 調用導出函數
}
FreeLibrary(hDll);
}
#pragma comment(lib, "dllname.lib")
將DLL的導入庫添加到項目中,在代碼中直接調用DLL中的函數。#pragma comment(lib, "dllname.lib")
extern "C" void functionName(); // 聲明DLL中導出函數
int main() {
functionName(); // 調用導出函數
return 0;
}
__declspec(dllimport)
關鍵字聲明DLL中的函數,并在代碼中直接調用。__declspec(dllimport) void functionName(); // 聲明DLL中導出函數
int main() {
functionName(); // 調用導出函數
return 0;
}
需要注意的是,調用DLL時需要確保DLL文件和導入庫文件(一般為.lib文件)位于正確的位置,并且DLL中的函數已經正確導出。