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.
CString
type? CString
is implemented both in terms of the CRT as well as the Windows API. –
Meat TCHAR
data type.", so use TEXT()
. –
Strive 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.
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 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.
© 2022 - 2024 — McMap. All rights reserved.
_T()
is only used with the C runtime library, for use with the_TCHAR
data type. The Win32 equivalent is theTEXT()
macro for use with theTCHAR
data type. Both map tochar
orwchar_t
depending on whether_UNICODE
andUNICODE
are defined during compiling, respectively. Both are usually defined/undefined together, so many people tend to interchange them and things usually work. But they are logically separate and should be treated accordingly. Use_TCHAR
and_T()
with C functions. UseTCHAR
andTEXT()
with the Win32 API. – Strive