首页 > 解决方案 > 为什么我不能从 char* 构造 wstring

问题描述

char*根据我从这段代码中构建填充:

char* pathAppData = nullptr;
size_t sz = 0;
_dupenv_s(&pathAppData, &sz, "APPDATA");

我可以很容易地用这段代码构造一个,string并且在将来:appendstring

std::string sPathAppData(pathAppData);
sPathAppData.append("\\MyApplication");

但我无法wstring从此代码创建一个。为什么使用起来如此复杂wstring?我对所有这些类型都快疯了。

std::wstring wPathAppData(pathAppData); // Impossible

标签: c++stringvisual-c++type-conversionwstring

解决方案


您必须使用迭代器进行复制。这就是你可以做到的。

char* pathAppData = nullptr;
size_t sz = 0;
_dupenv_s(&pathAppData, &sz, "APPDATA");
std::string sPathAppData(pathAppData);
sPathAppData.append("\\MyApplication");

std::wstring wPathAppData(begin(sPathAppData), end(sPathAppData));
wcout << wPathAppData << endl;

推荐阅读