おとついの晩ご飯

忘れやすいので忘れたくないことを書いています。

【C++】_TやらLやらについて

問題

たまに見る_TやらLやらがややこしい。
文字列を扱うときに使うものというのはわかっているが、どっちが何するものかも迷う。


理解

マクロ 意味
_T("text") textのT
TEXT("text") そのまんまのtext(_Tと同じ)
L"" リテラル


T("")の使い方(TEXT("")も)

なんでも_Tはマルチバイトとユニコードの違いをなくすてきな、万能なものみたい。
そのあたりの設定に関しては、プロジェクトのプロパティに記載あり。
(構成プロパティ > 詳細 > 文字セット)
以下のように使う。

auto text = _T("text");

たまにTCHAR使えないプロジェクトがあるけど、基本的にはこれでOK。


L""の使い方

ユニコード文字列という意味を表すものみたい。
いつ使うのかいまいちわからないけど、プロジェクトとしてユニコード文字列を使うとなった時は、 以下のように文字列定義する。

auto text = L"text";


ちなみに

以下のマイクロソフトのサイト見て気づいたけど、シングルクォーテーションで囲むか、ダブルクォーテーションで囲むかで意味が違ったりするんや。。。
docs.microsoft.com