您的位置:首页 > 运维架构

MBCS工程使用GetOpenFileNameW方法防止文件乱码

2014-08-11 18:46 471 查看
最近在维护公司的一个老旧系统,mfc开发,有用户反馈选择特殊字符的文件后,无法正常显示。
检查代码发现,该工程使用的是多字节字符集,选择文件采用的是CFileDialog类,特殊字符或者韩文、日文都无法正常读取。
网上查找资料发现GetOpenFileName方法也可以用来选择文件,特分享给大家。

OPENFILENAMEW ofn;
::memset( &ofn, 0, sizeof( ofn ) );

WCHAR filePath[MAX_PATH] = {0};
ofn.lStructSize     = sizeof( ofn );
ofn.lpstrFile       = filePath;
ofn.lpstrFilter     = L"All files (*.*)\0*.*\0";
ofn.nMaxFile        = MAX_PATH;
ofn.nFilterIndex    = 0;
ofn.lpstrFileTitle  = NULL;
ofn.nMaxFileTitle   = 0;
ofn.lpstrDefExt     = L"";
ofn.Flags           = OFN_EXPLORER | OFN_ENABLESIZING | OFN_HIDEREADONLY;

GetOpenFileNameW( &ofn );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息