阅读量:2
在C++中,可以使用以下步骤调用DLL库函数:
包含头文件:首先,需要包含DLL库的头文件。头文件通常包含了DLL库中函数的声明和定义。
加载DLL库:使用
LoadLibrary
函数加载DLL库。这个函数将返回一个指向DLL库的句柄。获取函数地址:使用
GetProcAddress
函数获取要调用的函数的地址。这个函数需要传入DLL库的句柄和函数名。调用函数:将获取到的函数地址强制转换为正确的函数指针类型,然后通过该指针调用函数。
卸载DLL库:使用
FreeLibrary
函数卸载加载的DLL库。
以下是一个示例代码:
#include <iostream> #include <Windows.h> // 声明DLL库中的函数 typedef int (*AddFunc)(int, int); int main() { // 加载DLL库 HINSTANCE hDLL = LoadLibrary(TEXT("mydll.dll")); if (hDLL != NULL) { // 获取函数地址 AddFunc add = (AddFunc)GetProcAddress(hDLL, "add"); if (add != NULL) { // 调用函数 int result = add(3, 5); std::cout << "Result: " << result << std::endl; } else { std::cout << "Failed to get function address." << std::endl; } // 卸载DLL库 FreeLibrary(hDLL); } else { std::cout << "Failed to load DLL library." << std::endl; } return 0; }
在上述代码中,首先使用LoadLibrary
函数加载了名为mydll.dll
的DLL库。然后使用GetProcAddress
函数获取了mydll.dll
中的add
函数的地址,并将其转换为函数指针类型AddFunc
。最后,使用该函数指针调用了add
函数,并打印了结果。最后,使用FreeLibrary
函数卸载了DLL库。请注意,这里的函数声明和定义需要与DLL库中的函数保持一致。