__declspec(dllimport)如何使用
时间: 2024-10-07 07:02:57 浏览: 76
`__declspec(dllimport)` 是C++编译器用于标记外部函数或变量为从DLL(动态链接库)导入的。当你在一个模块中声明一个函数或变量使用 `__declspec(dllimport)`,表明这个函数或变量是在另一个编译单元中定义的,通常位于不同的DLL文件中。
下面是如何使用`__declspec(dllimport)`的一个简单示例:
```cpp
// DLL.h (声明部分)
extern "C" __declspec(dllexport) void exportFunction(int arg); // 函数导出
// Main.cpp (需要导入的部分)
#include "DLL.h"
#include <windows.h> // Windows API 提供 LoadLibrary 和 GetProcAddress 函数
int main() {
HMODULE dllHandle = LoadLibrary("path_to_your_dll.dll"); // 加载DLL
if (!dllHandle) {
// 处理加载失败
return -1;
}
void (*importedFunction)(int) = (void(*) (int))GetProcAddress(dllHandle, "exportFunction"); // 获取函数指针
importedFunction(10); // 调用导出函数
FreeLibrary(dllHandle); // 释放DLL句柄
return 0;
}
```
在这个例子中,`Main.cpp` 导入了`DLL.dll`中的`exportFunction`。通过`LoadLibrary`加载DLL,然后用`GetProcAddress`找到并调用该函数。
阅读全文