严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2664 “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR” demo E:\VSProj\demo\demo\demo.cpp 229
时间: 2023-08-09 08:06:19 浏览: 1134
SelfLoader:在运行时解析库函数的简单代码
这个错误的原因是你在调用Windows API函数LoadLibraryW时,传入的参数类型不正确。LoadLibraryW函数的参数类型应该是LPCWSTR(即const wchar_t *),而你传入的是const char *类型的字符串。
解决方法是将传入的字符串转换成LPCWSTR类型。可以使用MultiByteToWideChar函数将const char *类型的字符串转换成LPCWSTR类型的字符串,然后再传给LoadLibraryW函数。具体实现可以参考以下代码:
```
const char* str = "your string";
int len = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
wchar_t* wstr = new wchar_t[len];
MultiByteToWideChar(CP_UTF8, 0, str, -1, wstr, len);
HMODULE module = LoadLibraryW(wstr);
delete[] wstr;
```
注意,在使用完之后需要释放wstr指向的内存空间。
阅读全文