Windows中的exe在调用getWindowsDirectory时附加wstring时正在崩溃

Exe in Windows is crashing while appending wstring when calling GetWindowsDirectory

本文关键字:崩溃 wstring getWindowsDirectory 中的 exe 调用 Windows      更新时间:2023-10-16

我正在附加wstring。我在WSTRING中有" C: Windows"。我正在将" System32 config "附加到它上。通过遵循代码。

#define MAX_PATH 260
 wstring wstrWindowsDirectory;
    if(0 != GetWindowsDirectory((LPWSTR)wstrWindowsDirectory.c_str(),MAX_PATH)) 
    {
        if(!wstrWindowsDirectory.empty()) {
            wstrWindowsDirectory += L"System32\config\";
        }
}
But its crashing..
please help me.. 
Thanks in advance.

当您通过c_str()写入字符串时,它不会自动生长。

因此,无法保证wstrWindowsDirectory足够大,可以包含您要写入其中的路径。

您需要在调用GetWindowsDirectory()之前使用wstring::reserve()