我只是试图根据字符串来获取模块信息,这些字符串非常类似于" 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;
}
" char *"类型的错误参数与类型&#34的参数不兼容; LPCWSTR" 出现在GetModuleHandle中。
现在,我尝试了很多步骤,例如:
转到项目属性→配置属性→字符集并将其设置为使用多字节字符集而不是Unicode。我已经看到它对其他人有所帮助,但它并没有为我做到这一点。
像(LPCWSTR)szModule
一样投射szModule。这使得程序成功构建,但它没有按预期工作。
通过将参数替换为静态L"somefile.exe"
来使用unicode。然而,这完全奏效,不用说它不太实用。
我的问题是:如果GetModuleHandle(szModule)
的类型为szModule
,我该如何编译char*
?
我使用Visual Studio 2015,如果有帮助的话。
答案 0 :(得分:2)
我不认为让GetModuleHandle(szModule)
拥有未来是一个好主意。
尝试使用GetModuleHandleA(szModule)
代替char *szModule;
。