Qué significa T en una CString


Qué representa la "T" en una cadena. Por ejemplo, _T("Hola").He visto esto en proyectos donde se necesita soporte unicode.Lo que realmente le dice al procesador

Author: CodeRider, 2013-03-19

3 answers

_T significa "texto". Convertirá su literal en un literal de caracteres anchos Unicode si y solo si está compilando sus fuentes con soporte Unicode. Véase http://msdn.microsoft.com/en-us/library/c426s321.aspx .

 26
Author: MvG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-19 11:24:40

De MSDN:

Use la macro _T para codificar cadenas literales genéricamente, de modo que se compilen como cadenas Unicode bajo Unicode o como cadenas ANSI (incluyendo MBC) sin Unicode

 12
Author: Tony The Lion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-19 11:23:07

En realidad se usa para proyectos donde se requiere soporte ANSI Unicode y. Le dice al compilador que compile el literal de cadena como Unicode o ANSI dependiendo del valor de una definición precompiladora.

Por qué querrías hacer esto es otro asunto. Si desea soportar Unicode por sí mismo, simplemente escriba Unicode, en este caso L"Hello". La macro _T() se añadió cuando necesitabas admitir Windows NT y posteriores (que admiten Unicode) y Windows 9x/ME (que no lo hacen). En estos días, cualquier código que use estas macros es obsoleto, ya que todas las versiones modernas de Windows están basadas en Unicode.

 11
Author: john,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-13 18:50:49