在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库中的函数保持一致。