gpt4 book ai didi

c++ - 将 LPCWSTR 与另一个字符串组合

转载 作者:行者123 更新时间:2023-11-30 04:03:21 25 4
gpt4 key购买 nike

我有一个需要保存文件的类,构造函数得到一个名为 fullPath 的 LPWSTR,然后我尝试这样做(curPath 是一个 LPCWSTR 类变量):

curPath = (std::wstring(fullPath) + L".ip").c_str();

但它最终变成了乱码。同时这有效:

auto cp = std::wstring(fullPath) + L".ip";
curPath = cs.c_str();

虽然在我看来他们基本上应该做同样的事情。这是怎么回事?

最佳答案

由表达式 (std::wstring(fullPath) + L".ip") 创建的临时 std::wstring 将在计算表达式后销毁。使用此临时文件的内部内存(由 c_str 公开)是未定义的行为和错误。

在第二个表达式中,您将结果保存在自动变量 cp 中。因此,直到当前作用域结束,您才可以使用变量 cp 的内部存储器。一旦范围结束,cp 将被销毁并释放其内存。

关于c++ - 将 LPCWSTR 与另一个字符串组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24474442/

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