如何使用unicode字符将TCHAR转换为char *。我使用follwong代码
//BROWSE FOLDER - Opens a browse folder dialog.
char* browse_folder(void)
{
char *selected_path = NULL;
TCHAR path[MAX_PATH];
BROWSEINFO bi = { 0 };
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_USENEWUI;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
if (pidl != 0)
{
// get the name of the folder and put it in path
SHGetPathFromIDList(pidl, path);
//Set the current directory to path
SetCurrentDirectory(path);
// free memory used
IMalloc* imalloc = 0;
if (SUCCEEDED(SHGetMalloc(&imalloc)))
{
imalloc->Free(pidl);
imalloc->Release();
}
//selected_path = ;
USES_CONVERSION;
selected_path = T2A(path);
}
}
我在visual studio项目设置中启用了unicode。我正在使用此功能浏览文件夹我在路径(TCHAR)中获取精确值时将其转换为char * unicode字符被替换为(????? )符号。
答案 0 :(得分:0)
由于您的项目支持unicode字符,您应该使用WideCharToMultiByte()转换为char *。尝试使用它。