C++ T在CString中代表什么

C++ T在CString中代表什么,c++,unicode,cstring,C++,Unicode,Cstring,“T”在字符串中表示什么。例如,我在需要unicode支持的项目中看到了这一点。它实际上从MSDN告诉处理器什么: 使用\u T宏对文字字符串进行常规编码,使其在Unicode下编译为Unicode字符串,或在不使用Unicode的情况下编译为ANSI字符串(包括MBC) \T代表“文本”。当且仅当您使用Unicode支持编译源代码时,它才会将文本转换为Unicode范围的字符文本。请参阅。它实际上用于需要Unicode和ANSI支持的项目。它告诉编译器根据预编译器定义的值将字符串文本编译为Un

“T”在字符串中表示什么。例如,我在需要unicode支持的项目中看到了这一点。它实际上从MSDN告诉处理器什么:

使用
\u T
宏对文字字符串进行常规编码,使其在Unicode下编译为Unicode字符串,或在不使用Unicode的情况下编译为ANSI字符串(包括MBC)


\T
代表“文本”。当且仅当您使用Unicode支持编译源代码时,它才会将文本转换为Unicode范围的字符文本。请参阅。

它实际上用于需要Unicode和ANSI支持的项目。它告诉编译器根据预编译器定义的值将字符串文本编译为Unicode或ANSI


你为什么要这样做是另一回事。如果您想单独支持Unicode,那么只需编写Unicode,在本例中是
L“Hello”
。当您需要支持Windows NT及更高版本(支持Unicode)和Windows 9x/ME(不支持Unicode)时,添加了
\u T()
宏。现在,任何使用这些宏的代码都已过时,因为所有现代Windows版本都是基于Unicode的。

它代表文本。您可以在使用IDE工具时查看定义:

#define _TEXT(x)    __T(x)
但我想把它记住为“可转换的”,或“swi-T-ch”:


从技术上讲,
\u T()
仅用于C运行时库,用于
\u TCHAR
数据类型。Win32等效程序是用于
TCHAR
数据类型的
TEXT()
宏。根据编译期间是否分别定义了
\u UNICODE
UNICODE
,这两种代码都映射到
char
wchar\u t
。两者通常一起定义/不定义,因此许多人倾向于交换它们,而事情通常都是有效的。但它们在逻辑上是分开的,应该相应地加以处理。将
\u TCHAR
\u T()
与C函数一起使用。在Win32 API中使用
TCHAR
TEXT()
CString
是在CRT和Windows API方面实现的。根据文档:“CString基于
TCHAR
数据类型”,因此使用
TEXT()
L"Hello"  //change "Hello" string into UNICODE mode, in any case;

_T("Hello") //if defined UNICODE, change "Hello" into UNICODE; otherwise, keep it in ANSI.