Win32 MessageBoxW输出乱码问题本帖最后由 chn3698 于 2013-08-27 10:50:11 编辑好久没来论坛了,小弟今天
Win32 MessageBoxW输出乱码问题
本帖最后由 chn3698 于 2013-08-27 10:50:11 编辑 好久没来论坛了,小弟今天遇到了一个问题,所以来此求助各位大神们了
事情是这样的,我用一个wchar_t*获取了OPENFILENAMEW结构的lpstrFile字段的数据,获取的数据本身是没乱码的,但是用MessageBox输出后就乱码了,代码如下
wchar_t* fileName;
...省略一些目前不必要的代码
case ID_MENU_OPEN:
openFile = OpenFileDialog(hWnd); //这里获取的数据正确
fileName = openFile.lpstrFile; //这里获得到的fileName仍然尚未乱码
MessageBoxW(hWnd,fileName,TEXT("NOTICE"),MB_OK); //但是在这里,使用MessageBox输出的时候就乱码了
break;
求破ToT win32 乱码
[解决办法]
MultiByteToWideChar
[解决办法]
需要先转fileName 为wchar类型
[解决办法]
因为你的工程环境是 多字符集 即ASCII的, 所以 openFile.lpstrFile应该也是ASCII的. 所以你想转换成wchar_t就需要MultiByteToWideChar等函数.
[解决办法]
你试试:MessageBoxA(hWnd,fileName,TEXT("NOTICE"),MB_OK);
这个不乱码的话那就是你的filename实际内容是char*
