c++隐式调用dll
时间: 2023-06-21 16:18:03 浏览: 54
在C++中,可以通过使用动态链接库(DLL)来实现动态加载和调用函数。要使用DLL,需要使用Windows API中的LoadLibrary函数加载DLL,并使用GetProcAddress函数获取DLL中导出的函数地址。使用这些函数,可以在运行时动态地加载DLL并调用其中的函数。
下面是一个示例代码,演示了如何使用DLL并调用其中的函数:
```cpp
#include <iostream>
#include <windows.h>
typedef int (*AddFunc)(int, int);
int main() {
HINSTANCE hDLL = LoadLibrary("mydll.dll");
if (hDLL == NULL) {
std::cout << "Failed to load DLL." << std::endl;
return 1;
}
AddFunc add = (AddFunc)GetProcAddress(hDLL, "Add");
if (add == NULL) {
std::cout << "Failed to get function address." << std::endl;
return 1;
}
int result = add(1, 2);
std::cout << "Result: " << result << std::endl;
FreeLibrary(hDLL);
return 0;
}
```
在上面的代码中,我们首先使用LoadLibrary函数加载名为mydll.dll的DLL。然后,使用GetProcAddress函数获取名为Add的导出函数的地址。最后,我们调用Add函数,并输出其返回值。注意,我们使用了typedef来定义了一个函数指针类型AddFunc,这是为了方便地使用函数指针调用Add函数。
需要注意的是,在使用DLL时需要确保DLL文件已经被正确地编译和链接。否则,可能会出现链接错误或运行时错误。