我只是想根据一个字符串来获取模块信息,这个字符串很可能是“somefile.exe”之类的东西。
MODULEINFO GetModuleInfo(char *szModule)
{
MODULEINFO modinfo = {0};
HMODULE hModule = GetModuleHandle(szModule);
if(hModule == 0)
return modinfo;
GetModuleInformation(GetCurrentProcess(), hModule, &modinfo, sizeof(MODULEINFO));
return modinfo;
}
GetModuleHandle 中出现“char *”类型的错误参数与“LPCWSTR”类型的参数不兼容。
现在,我尝试了许多步骤,例如:
转到项目属性→配置属性→字符集并将其设置为使用多字节字符集而不是 Unicode。我已经看到它帮助了其他人,但它并没有对我有用。
像
(LPCWSTR)szModule
. 这使得程序构建成功,但它没有按预期工作。通过将参数替换为 static 来使用 unicode
L"somefile.exe"
。然而,这非常有效,不用说它不是很实用。
我的问题是:如果是类型,我该如何GetModuleHandle(szModule)
编译?szModule
char*
如果有任何帮助,我正在使用 Visual Studio 2015。