动态库test.dll 中有导出函数void fun( std::function<bool(void)> ) 写个例子动态调用test.dll中的fun函数
时间: 2024-05-06 07:21:55 浏览: 234
在C#中调用API函数.
好的,以下是示例代码:
```
#include <iostream>
#include <Windows.h>
#include <functional>
int main() {
HINSTANCE hDll;
typedef void(*Fun)(std::function<bool(void)>);
Fun fun;
hDll = LoadLibraryA("test.dll"); // 加载动态库
if (hDll == NULL) {
std::cout << "Failed to load library!" << std::endl;
return -1;
}
fun = (Fun)GetProcAddress(hDll, "fun"); // 获取导出函数地址
if (fun == NULL) {
std::cout << "Failed to get function address!" << std::endl;
return -1;
}
// 调用导出函数
std::function<bool(void)> f = []() { return true; };
fun(f);
FreeLibrary(hDll); // 释放动态库
return 0;
}
```
希望对您有帮助!接下来请问您有什么问题吗?
阅读全文