我正在修改广泛使用 TCHAR 的其他人的代码。在我的代码中只使用 std::wstring 是不是更好的形式?wstring 应该等同于 Widechar 平台上的 TString,所以我看不到问题。理由是,使用原始 wstring 比支持 TCHAR 更容易......例如,使用 boost:wformat。
下一个维护者会更清楚哪种风格?我自己浪费了几个小时试图理解字符串的复杂性,似乎只使用 wstring 就会切断你需要理解的一半内容。
typedef std::basic_string<TCHAR> TString; //on winxp, TCHAR resolves to wchar_t
typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
...唯一的区别是分配器。
在您的程序落在 Window 9x 机器上的不太可能的情况下,仍然有一个 API 层可以将您的 UTF-16 字符串转换为 8 位字符。使用 TCHAR 进行新代码开发已经没有意义了。 资源