「T」は文字列で何を表していますか。たとえば、_T("Hello")。ユニコードのサポートが必要なプロジェクトでこれを見てきました。実際にプロセッサに伝える内容
4 に答える
_T
「テキスト」を意味します。ソースを Unicode サポートでコンパイルしている場合にのみ、リテラルを Unicode ワイド文字リテラルに変換します。http://msdn.microsoft.com/en-us/library/c426s321.aspxを参照してください。
実際には、UnicodeとANSI のサポートが必要なプロジェクトで使用されています。プリコンパイラ定義の値に応じて、文字列リテラルを Unicode または ANSI としてコンパイルするようにコンパイラに指示します。
なぜこれをやりたいのかは別の問題です。Unicode を単独でサポートする場合は、Unicode と記述します。この場合はL"Hello"
. この_T()
マクロは、Windows NT 以降 (Unicode をサポート) および Windows 9x/ME (非サポート) をサポートする必要があるときに追加されました。最近の Windows バージョンはすべて Unicode ベースであるため、これらのマクロを使用するコードはすべて廃止されています。
MSDN から:
マクロを使用して
_T
リテラル文字列を汎用的にコーディングし、Unicode で Unicode 文字列として、または Unicode を使用せずに ANSI 文字列 (MBCS を含む) としてコンパイルします。