What does the \"T\" represents in a string. For example _T(\"Hello\").I have seen this in projects where unicode support is needed.What it actually tells the processor
_T
stands for “text”. It will turn your literal into a Unicode wide character literal if and only if you are compiling your sources with Unicode support. See http://msdn.microsoft.com/en-us/library/c426s321.aspx.
From MSDN:
Use the
_T
macro to code literal strings generically, so they compile as Unicode strings under Unicode or as ANSI strings (including MBCS) without Unicode
It's actually used for projects where Unicode and ANSI support is required. It tells the compiler to compile the string literal as either Unicode or ANSI depending on the value of a precompiler define.
Why you would want to do this is another matter. If you want to support Unicode by itself then just write Unicode, in this case L"Hello"
. The _T()
macro was added when you needed to support Windows NT and later (which support Unicode) and Windows 9x/ME (which do not). These days any code using these macros is obsolete, since all modern Windows versions are Unicode-based.
It stands for TEXT. You can peek the definition when using IDE tools:
#define _TEXT(x) __T(x)
But I would like to memorize it as "Transformable", or "swi-T-ch":
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.