c++ loadlibrary
时间: 2024-05-15 12:12:37 浏览: 141
c++图书馆程序
在 C++ 中,可以使用 LoadLibrary 函数来动态加载一个 DLL 文件。这个函数的原型如下:
```c++
HMODULE LoadLibrary(LPCTSTR lpFileName);
```
其中,lpFileName 参数指定 DLL 文件的路径,LoadLibrary 函数返回一个 HMODULE 类型的句柄,表示已加载的 DLL。
使用 LoadLibrary 加载 DLL 的基本流程如下:
1. 使用 LoadLibrary 函数加载 DLL 文件,获得 DLL 的句柄。
2. 使用 GetProcAddress 函数获得 DLL 中的函数地址。
3. 调用 DLL 中的函数。
4. 使用 FreeLibrary 函数释放 DLL。
下面是一个简单的示例代码,演示了如何使用 LoadLibrary 加载 DLL 文件并调用其中的函数:
```c++
#include <windows.h>
#include <iostream>
int main()
{
// 加载 DLL
HMODULE hModule = LoadLibrary(TEXT("mydll.dll"));
if (hModule == NULL)
{
std::cerr << "Failed to load DLL." << std::endl;
return 1;
}
// 获取函数地址
typedef int (*MyFunc)();
MyFunc myFunc = reinterpret_cast<MyFunc>(GetProcAddress(hModule, "MyFunc"));
if (myFunc == NULL)
{
std::cerr << "Failed to get function address." << std::endl;
FreeLibrary(hModule);
return 1;
}
// 调用函数
int result = myFunc();
std::cout << "Result: " << result << std::endl;
// 释放 DLL
FreeLibrary(hModule);
return 0;
}
```
需要注意的是,LoadLibrary 函数加载的 DLL 文件必须与应用程序在同一目录或系统目录下,或者在环境变量 PATH 所指定的目录中。否则需要指定完整路径或使用 SetDllDirectory 函数设置额外的搜索路径。
阅读全文