web-dev-qa-db-fra.com

Que signifie _T dans un CString

Que représente le "T" dans une chaîne. Par exemple _T ("Bonjour"). J'ai vu cela dans des projets où la prise en charge Unicode est nécessaire. Ce qu'il indique réellement au processeur

30
CodeRider

_T signifie "texte". Cela transformera votre littéral en littéral de caractère large Unicode si et seulement si vous compilez vos sources avec le support Unicode. Voir http://msdn.Microsoft.com/en-us/library/c426s321.aspx .

30
MvG

Depuis MSDN:

Utilisez le _T macro pour coder les chaînes littérales de manière générique, afin qu'elles se compilent en tant que chaînes Unicode sous Unicode ou en tant que chaînes ANSI (y compris MBCS) sans Unicode

14
Tony The Lion

Il est en fait utilisé pour les projets où Unicode et le support ANSI est requis. Il indique au compilateur de compiler le littéral de chaîne au format Unicode ou ANSI selon la valeur d'une définition de précompilateur.

Pourquoi voudriez-vous faire cela est une autre question. Si vous souhaitez prendre en charge Unicode seul, écrivez simplement Unicode, dans ce cas L"Hello". La macro _T() a été ajoutée lorsque vous aviez besoin de prendre en charge Windows NT et versions ultérieures (qui prennent en charge Unicode) et Windows 9x/ME (qui ne le font pas). De nos jours, tout code utilisant ces macros est obsolète, car toutes les versions modernes de Windows sont basées sur Unicode.

13
john