从多字节字符集转换旧的Visual Studio C ++项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从多字节字符集转换旧的Visual Studio C ++项目相关的知识,希望对你有一定的参考价值。

我想将旧的C ++ MFC项目从Visual Studio 2005转移到更新的版本。该项目使用我知道在当前Visual Studio中不再支持的多字节字符集。因此,第一步应该是使项目独立于字符集。一位在工作的同事告诉我,如果我在每个文本周围放置一个宏_T(),我就可以这样做。不幸的是,该项目包含大量静态文本,添加宏需要数周时间。

没有其他办法吗?

答案

不幸的是没有别的办法。您可以尝试使用正则表达式或某些文本编辑器(如sed)自动执行文本编辑。

但我个人更喜欢手动检查所有代码,没有多字节字符相关的代码:使用_tcslen而不是strlen_TCHAR而不是char等。

要考虑的其他变体是使代码明确使用宽带:wcslen而不是strlenwchar_t而不是charL"some string"而不是_T("some string")等。

UPD:我也发现了一些好消息“在VC2017中已经从MFC中删除了弃用警告[MFC对MBCS的支持已被弃用],我们将在未来版本中继续提供MBCS支持。” (https://blogs.msdn.microsoft.com/vcblog/2013/07/08/mfc-support-for-mbcs-deprecated-in-visual-studio-2013/),所以你可能只是保持原样。

以上是关于从多字节字符集转换旧的Visual Studio C ++项目的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 字符集“未设置”与“多字节字符集”

在 Visual Studio 中以字节数组形式将 64 位双精度转换为 80 位双精度

Visual Studio C ++组合框控件不适用于多字节字符集

如何解决 Visual Studio C++ 问题,“算术溢出:在 4 字节值上使用运算符 '*',然后将结果转换为 8 字节值。”?

Visual Studio 的字符集编码

转: 带你玩转Visual Studio——带你理解多字节编码与Unicode码