ShGetFolderPath wchar_t 不会针对 x64 进行编译

ShGetFolderPath wchar_t won't compile for x64

本文关键字:x64 编译 wchar ShGetFolderPath      更新时间:2023-10-16

在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的解决方案,这样我就不必在每次切换平台时切换"localAppData"的声明。

有人知道解决方法吗?

谢谢。

问题是您的x86项目配置为Unicode,但您的x64项目配置为多字节。确保字符集在所有配置中是一致的。假设您打算自始至终使用Unicode