协助在 MFC 中从多字节移植到 UNICODE
Assistance with porting from Multi-Byte to UNICODE in MFC
我还有6个月到一年的时间有点乏味。我正在开发一个有 100 万行代码的程序(其中大部分是在 90 年代早期/中期编写的),并且已经决定它现在应该支持 UNICODE 构建。我研究并发现了许多最佳实践:
- 使用许多 Microsoft 和 C++ 方法(如 _stprintf_s() 的_t版本而不是 sprintf_s() 或 _tcsstr() 而不是 strstr(),
- 包装所有需要 TCHAR* 的编码字符串,例如 _T("字符串")或_T("c"), 将大多数字符*替换为
- LPTSTR,将大多数常量字符*替换为 LPCTSTR,将字符替换为 TCHAR如有必要,使用 CA2T() 和 CT2A() 在 char* 和 LPTSTR 之间进行转换,
我想知道是否有人编写了一个能够自动进行许多这些更改的脚本,因为它们可以为我节省数月的工作。
我认为这种方法完全适合您的情况。
将所有字符串保留为窄字符,像以前一样使用sprintf
和strstr
,从始终假定为没有 BOM 的 UTF-8 的文本文件中读取和写入,等等......您需要更改的只是与系统的通信。现在假设字符串是 UTF-8,在调用 MFC 或 Windows 之前,请即时转换为 UTF-16。
作为奖励,与Microsoft倡导的方法相比,您将更容易移植到非Windows平台。
相关文章:
- 多字节到宽字符无法正常工作
- 如果使用多字节字符集,为什么TCHAR值会更改
- 多字节字符'377777'如何工作?
- 找到最长的UTF-8序列,而无需打破多字节序列
- 如何在MFC多字节应用程序中显示西里尔文本?
- 从多字节字符集转换旧的Visual Studio C++项目
- 了解多字节/Unicode
- 在 linux/mac 中获取多字节字符的"char"
- 以C++输出多字节字符串
- C++中数组中的多字节UTF-8
- 操作多字节字符的字符串
- Visual Studio 多字节字符到单个字节
- 协助在 MFC 中从多字节移植到 UNICODE
- 在多字节字符集应用程序中的MFC窗体控件上设置Unicode文本
- 从多字节编码到Unicode的转换
- Unicode字符或多字节字符:哪种类型更有效?为什么
- Crypto++多字节/unicode问题
- 我如何在静态库(.lib)中支持Unicode和多字节字符集
- 如何在代码中同时支持 Unicode 和多字节字符集
- 我可以使用_bstr_t类在Windows上的多字节和Unicode之间进行转换吗?(c++)