我有一个用ISO C ++编写的库。它不使用Winapi,TCHAR或类似的东西。我目前正在将其构建为一个字符集设置为Unicode的静态库。我打算将它链接到其他库,其中一些使用Unicode构建,一些是MBCS。
在这种情况下,我是否需要创建两个配置并构建两个版本(MBCS和Unicode)?
答案 0 :(得分:2)
这不是问题。使用utf-16编码的Unicode字符串的代码使用wchar_t *,使用传统8位编码的代码使用char *。对编译器和链接器都是明确的。设置存在的唯一原因是因为Windows标头和非标准<tchar.h>
包含将typedef(如TCHAR)转换为其中任何一种字符串类型的宏,由UNICODE和_UNICODE #defines引导。
当然,使用char *作为字符串的程序使用这个库将是一个巨大的皮塔饼。程序必须翻译字符串,注意演员不会这样做。