怎么加载dll文件
时间: 2024-02-04 12:01:48 浏览: 22
在 Windows 平台上,加载 DLL 文件通常需要以下步骤:
1. 使用 `LoadLibrary` 函数加载 DLL 文件,该函数返回一个模块句柄。例如:
```c++
HMODULE hDll = LoadLibrary("example.dll");
```
2. 使用 `GetProcAddress` 函数获取 DLL 中导出函数的地址,具体使用方式是传入模块句柄和函数名,该函数返回一个函数指针。例如:
```c++
typedef int (*MYFUNC)(int);
MYFUNC pMyFunc = (MYFUNC)GetProcAddress(hDll, "MyFunc");
```
3. 调用获取到的函数指针即可调用 DLL 中的函数,例如:
```c++
int result = pMyFunc(42);
```
4. 使用 `FreeLibrary` 函数释放 DLL 文件,例如:
```c++
FreeLibrary(hDll);
```
完整的代码示例:
```c++
#include <windows.h>
#include <iostream>
typedef int (*MYFUNC)(int);
int main()
{
// 加载 DLL 文件
HMODULE hDll = LoadLibrary("example.dll");
if (!hDll) {
std::cerr << "Failed to load DLL file!\n";
return 1;
}
// 获取函数地址
MYFUNC pMyFunc = (MYFUNC)GetProcAddress(hDll, "MyFunc");
if (!pMyFunc) {
std::cerr << "Failed to get function address!\n";
FreeLibrary(hDll);
return 1;
}
// 调用函数
int result = pMyFunc(42);
std::cout << "Result: " << result << "\n";
// 释放 DLL 文件
FreeLibrary(hDll);
return 0;
}
```
需要注意的是,在调用 DLL 中的函数之前,需要先加载 DLL 文件并获取函数地址。在使用完 DLL 文件之后,需要释放 DLL 文件,避免内存泄漏。