LoadLibrary的用法
时间: 2023-12-11 13:18:42 浏览: 86
LoadLIbrary示例
LoadLibrary函数是Windows API提供的一个函数,用于加载动态链接库(DLL)并返回DLL的句柄。它的函数原型如下:
```c++
HMODULE LoadLibrary(
LPCWSTR lpLibFileName
);
```
其中,lpLibFileName参数是一个指向包含DLL文件名的字符串的指针。这个字符串可以是绝对路径,也可以是相对路径。如果指定的是相对路径,则系统会在搜索路径中查找DLL文件。
LoadLibrary函数返回一个HMODULE类型的句柄,用于后续的操作,比如调用GetProcAddress函数获取DLL中的函数地址。
如果LoadLibrary函数加载DLL失败,则返回NULL。如果DLL已经被加载,LoadLibrary函数将返回已经加载的DLL的句柄。
下面是一个使用LoadLibrary函数加载DLL并获取其中一个函数地址的示例代码:
```c++
#include <Windows.h>
#include <stdio.h>
int main()
{
HMODULE hDll = LoadLibrary(L"mydll.dll");
if (hDll == NULL)
{
printf("LoadLibrary failed, error code: %d\n", GetLastError());
return 1;
}
typedef int (*pfnMyFunction)(int);
pfnMyFunction myFunction = (pfnMyFunction)GetProcAddress(hDll, "MyFunction");
if (myFunction == NULL)
{
printf("GetProcAddress failed, error code: %d\n", GetLastError());
FreeLibrary(hDll);
return 1;
}
int result = myFunction(123);
printf("Result: %d\n", result);
FreeLibrary(hDll);
return 0;
}
```
这个示例代码加载了名为mydll.dll的DLL,并获取了其中一个名为MyFunction的函数的地址。然后,调用MyFunction函数并输出其返回值。最后,调用FreeLibrary函数释放DLL的句柄。
阅读全文