Cosa rappresenta la "T" in una stringa. . Per esempio _T ("Ciao") Ho visto questo in progetti in cui il supporto unicode è needed.What in realtà dice al processoreCosa significa _T in un CString
risposta
_T
sta per "testo". Trasformerà il letterale in un letterale di caratteri Unicode se e solo se stai compilando i tuoi sorgenti con il supporto Unicode. Vedi http://msdn.microsoft.com/en-us/library/c426s321.aspx.
Da MSDN:
Utilizzare la
_T
macro per codificare le stringhe letterali genericamente, quindi vengono compilati come stringhe Unicode in Unicode o come stringhe ANSI (incluso MBCS) senza Unicode
In realtà è utilizzato per progetti in cui è richiesto il supporto ANSI Unicode e. Indica al compilatore di compilare la stringa letterale come Unicode o ANSI a seconda del valore di un precompilatore definito.
Perché si vorrebbe fare questo è un'altra questione. Se si desidera supportare Unicode da solo, è sufficiente scrivere Unicode, in questo caso L"Hello"
. La macro _T()
è stata aggiunta quando è necessario supportare Windows NT e versioni successive (che supportano Unicode) e Windows 9x/ME (che non lo fanno). In questi giorni qualsiasi codice che utilizza queste macro è obsoleto, poiché tutte le moderne versioni di Windows sono basate su Unicode.
- 1. Cosa significa il suffisso "_t" in C?
- 2. Cosa significa. (...) in un rapporto .prof significa?
- 3. Cosa significa @ "../ .." in un percorso?
- 4. Cosa significa = ~ significa in Perl
- 5. Cosa significa || = significa in Ruby?
- 6. cosa significa "@" significa in C#
- 7. Cosa significa/*! */Significa in C#?
- 8. Cosa significa: :: significa in C++?
- 9. Cosa significa "??" significa in C#?
- 10. Cosa significa! */Significa in .gitignore
- 11. Cosa significa un punto dopo un intero significa in python?
- 12. Cosa significa/#!/Significa nell'URL?
- 13. fputs (_ ("")) cosa significa la sottolineatura?
- 14. Cosa significa Field.Index.NOT_ANALYZED_NO_NORMS significa
- 15. Cosa significa || = significa?
- 16. Cosa significa (+ var) significa
- 17. Cosa significa: significa?
- 18. javascript: cosa significa/* @ @ */significa?
- 19. Cosa significa '::' significa?
- 20. Cosa significa require ('../') significa?
- 21. Cosa significa "" in JavaScript?
- 22. Cosa significa [:] in groovy?
- 23. Cosa significa "@" in Haskell?
- 24. Cosa significa /// in JavaScript?
- 25. cosa significa ** in C
- 26. Cosa significa @@ in Ruby?
- 27. Cosa significa @() in PowerShell?
- 28. Cosa significa "%" in Fortran?
- 29. Cosa significa :: * in C++?
- 30. Cosa significa ": .." in Haskell?
Tecnicamente, '_T()' viene utilizzato solo con la libreria di runtime C, da utilizzare con il tipo di dati '_TCHAR'. L'equivalente di Win32 è la macro 'TEXT()' da usare con il tipo di dati 'TCHAR'. Entrambi si associano a 'char' o' wchar_t' a seconda che siano stati definiti '_UNICODE' e' UNICODE' durante la compilazione, rispettivamente. Entrambi sono generalmente definiti/non definiti insieme, quindi molte persone tendono a scambiarli e le cose di solito funzionano. Ma sono * logicamente * separati e * dovrebbero * essere trattati di conseguenza. Usa '_TCHAR' e' _T() 'con le funzioni C. Usa 'TCHAR' e' TEXT() 'con l'API Win32. –
@RemyLebeau: Ora ecco la domanda complicata: quale usare con il tipo 'CString' di MFC/ATL? 'CString' è implementato sia in termini di CRT che dell'API di Windows. – IInspectable
Per la documentazione: "*** CString è basato sul tipo di dati' TCHAR' **. * ", Quindi usa' TEXT() '. –