在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中的函数已经正确导出。