gpt4 book ai didi

c++ - C2664错误,C++对我来说是陌生的

转载 作者:行者123 更新时间:2023-12-02 11:07:42 25 4
gpt4 key购买 nike

我得到的错误是:
"DWORD GetModuleFileNameW(HMODULE,LPWSTR,DWORD)' : cannot convert parameter 2 from 'char *' to 'LPWSTR"
在这条线上

GetModuleFileName(NULL, &strL[0], MAX_PATH);

这个代码
    BOOL APIENTRY DllMain(HMODULE hModule, DWORD fdwReason, LPVOID lpReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
{
std::string strL;
strL.resize(MAX_PATH);
GetModuleFileName(NULL, &strL[0], MAX_PATH);

DisableThreadLibraryCalls(hModule);

if(strL.find("notepad.exe") != std::string::npos)
{
gl_hThisInstance = hModule;

LoadOriginalDll();
}

break;
}
case DLL_PROCESS_DETACH:
{
ExitInstance();

break;
}
}
return TRUE;
}

最佳答案

MSDN

typedef wchar_t* LPWSTR, *PWSTR;

因此,它期望使用 wchar_t *(wchar_t为2个字节或更多),但是 &std::string[0]char*(char为字节)。您需要改用 std::wstring:
std::wstring strL;

关于c++ - C2664错误,C++对我来说是陌生的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20307188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com