2

序言:我知道 Microsoft 使用的术语“Unicode”与 Microsoft 世界之外的术语“Unicode”不一致。当我在下面使用“Unicode”时,我的意思是“在 Windows 中使用的 UCS2”以及在 Visual Studio 构建设置的上下文中。

解决这个问题:随着即将推出的 Visual Studio 2013,微软最终将逐步淘汰 MBCS 构建。这促使我修复我们的代码库以进入 21 世纪,并为我们所有使用 win32 和 MFC 的代码切换到 Unicode 构建。但是,我们使用一些可移植的外部库,不使用任何特定于 Windows 的内容并且使用 MBCS 设置。我不期待识别这些库和我们自己的代码之间的每一个交互点,并处理 WideCharToMultiByte()、ATL 转换宏和无处不在的关联。

所以我的问题是:处理混合 mbcs/Unicode 构建的最佳实践是什么?是否有任何指导文档或示例应用程序已完成?

我希望有一种更好的方法,而不是必须使用转换运算符为各种库中使用的所有类型定义我自己的字符串类型:)

4

1 回答 1

0

根据您的描述,您似乎拥有这些库。

我会将它们更改为使用“使用通用文本映射” http://msdn.microsoft.com/en-us/library/7dzey6h6.aspx 这样您就可以使用为 Windows 定义的 UNICODE 和 _UNICODE 编译它们,而无需在其他系统。

不过,您将不得不编写类似您自己的 tchar.h 的东西(但非常简单,例如,只需一堆 ifdef 将 _tprintf 映射到 wprintf/printf)。

于 2013-09-13T04:10:51.797 回答