ShGetFolderPath wchar_t不会为x64编译

时间:2015-08-18 08:33:13

标签: c++ winapi visual-studio-2013

这适用于x86编译:

wchar_t localAppData[MAX_PATH]; // Array, not a pointer.
SHGetFolderPath(NULL,CSIDL_LOCAL_APPDATA, 0, NULL, localAppData);
std::wstringstream ss;
ss << localAppData;
return ss;

这对于x64编译很好:

char localAppData[MAX_PATH]; // Array, not a pointer.
SHGetFolderPath(NULL,CSIDL_LOCAL_APPDATA, 0, NULL, localAppData);
std::wstringstream ss;
ss << localAppData;
return ss;

但是,我想找到适用于x86和x64的解决方案,这样我就不必切换&#34; localAppData&#34;每次我切换平台。

有人知道解决方案吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

问题是您的x86项目是针对Unicode配置的,但您的x64项目配置为多字节。确保所有配置中的字符集保持一致。大概你打算在整个过程中使用Unicode。