1

我有一个用 ISO C++ 编写的库。它不使用 Winapi、TCHAR 或类似的东西。我目前正在将其构建为一个静态库,其字符集设置为 Unicode。我打算将它链接到其他库,其中一些使用 Unicode 构建,一些 - MBCS。

在这种情况下,我是否需要创建两个配置并构建两个版本(MBCS 和 Unicode)?

4

1 回答 1

2

这不是问题。使用 utf-16 编码的 Unicode 字符串的代码使用 wchar_t*,使用传统 8 位编码的代码使用 char*。对编译器和链接器都没有歧义。该设置存在的唯一原因是因为 Windows 标头和非标准<tchar.h>包含将 typedef(如 TCHAR)转换为这些字符串类型中的任何一种的宏,由 UNICODE 和 _UNICODE #defines 引导。

当然,从使用 char* 字符串的程序中使用这个库将是一个巨大的皮塔饼。程序必须翻译字符串,注意强制转换是不行的。

于 2012-10-06T17:50:07.480 回答