web-dev-qa-db-ja.com

_TはCStringで何を表しますか

「T」は文字列で何を表しますか。たとえば、_T( "Hello")。Unicodeサポートが必要なプロジェクトでこれを見てきました。実際にプロセッサに伝えること

30
CodeRider

_Tは「テキスト」を表します。 Unicodeサポートを使用してソースをコンパイルしている場合にのみ、リテラルをUnicodeワイド文字リテラルに変換します。 http://msdn.Microsoft.com/en-us/library/c426s321.aspx を参照してください。

30
MvG

MSDNから:

使用 _Tマクロはリテラル文字列を一般的にコーディングするため、Unicodeの下でUnicode文字列として、またはUnicodeなしのANSI文字列(MBCSを含む)としてコンパイルします。

14
Tony The Lion

実際には、Unicode および ANSIサポートが必要なプロジェクトに使用されます。プリコンパイラ定義の値に応じて、文字列リテラルをUnicodeまたはANSIとしてコンパイルするようにコンパイラに指示します。

これを行う理由は別の問題です。ユニコードを単独でサポートしたい場合は、ユニコード、この場合は_L"Hello"_を記述するだけです。 _T()マクロは、Windows NT以降(Unicodeをサポート)およびWindows 9x/ME(サポートしない)をサポートする必要があるときに追加されました。最近のWindowsバージョンはすべてUnicodeベースであるため、これらのマクロを使用するコードは廃止されています。

13
john