我必须将 TCHAR 变量(使用 OpenBrowseDir 检索到的路径)转换为 std::string。我目前正在使用此代码。我正在使用 WideCharToMultiByte。
TCHAR path[MAX_PATH];
OpenBrowseDir(path);
/*conversion from TCHAR to std::string*/
char ch[MAX_PATH];
char DefChar = ' ';
WideCharToMultiByte(CP_ACP, 0, path, -1, ch, MAX_PATH, &DefChar, NULL);
string spath(ch);
在我的项目中,TCHAR 是 wchar_t。
在 OpenBrowseDir 中,我打开了一个浏览对话框,以便用户可以选择一个目录。我正在使用变量 BROWSEINFO bi,bi.pszDisplayName 的类型为 TCHAR。
还有其他更好的解决方案吗?