C++用windows.h的LoadLibrary()方法加载动态库保存在HMODULE的句柄,如何判断是否加载成功
时间: 2024-12-18 10:37:01 浏览: 8
c/c++中如何实现动态库动态加载的完整工程示例代码
在C++中,使用`LoadLibrary()`函数从Windows API加载动态链接库(DLL)时,它会返回一个指向模块信息的HMODULE句柄。若加载成功,HMODULE将非NULL;如果加载失败,HMODULE将为NULL。你可以通过检查这个值来判断加载是否成功。下面是一个简单的示例:
```cpp
#include <Windows.h>
// 定义一个函数来加载并检查DLL
bool LoadAndCheckLibrary(const wchar_t* dllPath) {
HMODULE hModule = LoadLibrary(dllPath);
if (hModule != NULL) {
// 如果成功加载,可以继续操作或获取函数指针等
std::wcout << L"Library loaded successfully." << std::endl;
return true;
} else {
std::wcerr << L"Failed to load library: " << GetLastError() << std::endl; // 获取错误代码
return false;
}
}
int main() {
bool success = LoadAndCheckLibrary(L"C:\\path\\to\\your.dll"); // 替换为实际的DLL路径
if (!success) {
// 处理加载失败的情况
}
return 0;
}
```
在上述代码中,`GetLastError()`函数用于获取上一个系统API调用失败的原因。如果`LoadLibrary()`返回NULL,这通常意味着遇到了一个错误,你可以查看该错误代码来了解具体原因。
阅读全文