MSVC的编译分multi-byte和unicode两种字符模式
也就是决定TCHAR到底是char还是wchar_t的模式
古老的VC6甚至更早的时代,很多代码是multi-byte的(因为win 3.x、win9x是ansi字符的API),现在除了跨平台的libcurl这种还用multi-byte模式编译,早就是unicode模式了
所以楼主应该是在维护一个上古的工程
【 在 yuanmo 的大作中提到: 】
: 我估计他说的多字节就是最简单的那种char*字符串,GB2312/GBK编码。
: 这类程序移植到utf-16最大的问题是改成w_char*后,各种std::string, strcpy, strcat之类以0结尾的字符串算法都得改,极度蛋疼。所以改用utf-8会方便很多,至少大部分情况下还是char*的那坨约定,修改量会小很多,只需要考虑IO部分的转码和内存越界问题。
:
--
修改:z16166 FROM 222.130.138.*
FROM 222.130.138.*