【问题标题】:Exe in Windows is crashing while appending wstring when calling GetWindowsDirectory调用 GetWindowsDirectory 时附加 wstring 时 Windows 中的 Exe 崩溃
【发布时间】:2017-04-27 00:16:07
【问题描述】:

我正在附加 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.

【问题讨论】:

  • 一个wstring是一个const char*数组,所以你应该手动分配足够的长度。

标签: c++ windows crash append wstring


【解决方案1】:

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

因此,不能保证wstrWindowsDirectory 足够大以包含您尝试写入其中的路径。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 2021-02-19
    • 2016-04-25
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2016-03-25
    相关资源
    最近更新 更多