我有以下代码。
wchar_t path[MAX_PATH +1] = {0};
SHGetFolderPathW(NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, path);
这里我将程序数据文件夹路径带到"路径"这是wchar_t。我想将它转换为wstirng并打印出来。我怎么能这样做?
答案 0 :(得分:4)
尝试以下
#include <string>
#include <iostream>
int main() {
wchar_t path[MAX_PATH +1] = ...;
std::wstring s(path);
std::wcout << s;
return 0;
}
答案 1 :(得分:3)
C ++ 11解决方案(底层存储保证是连续的数组):
std::wstring path;
path.resize(MAX_PATH +1);
SHGetFolderPathW(NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, &path[0]);
path.shrink_to_fit();
答案 2 :(得分:1)
您不需要为此创建std::wstring
:
wchar_t path[MAX_PATH +1] = {0};
SHGetFolderPathW(NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, path);
std::wcout << path;