现在C++中有正式的TCHAR类型吗

Is there an official TCHAR type in C++ now?

本文关键字:TCHAR 类型 C++ 现在      更新时间:2023-10-16

如果编写可以用不同字符类型编译的代码,TCHAR仍然是正确的使用类型吗,例如std::basic_stringstream<TCHAR>

还是现在有一些官方的C++/STL类型是首选的,就像wchar_t取代WCHARtrue取代TRUEnullptr取代NULL一样?

我说的是使用basic_string这样的类的情况,这些类是用TCHAR显式模板化的。

否。TCHAR允许您基于Microsoft的_UNICODE宏并使用Microsoft的各种其他"T"宏在charwchar_t之间切换。这些都与标准C++API无关。

如果您正在维护一个使用TCHAR的遗留C++程序,那么您可以继续使用TCHAR。

对于编写新程序,我看到人们更喜欢避免完全使用旧代码页,而是使用char作为UTF-8,然后在Windows上无条件地使用*W API,在API边界上在UTF-8 char字符串和wchar_t之间转换。