DirectX C++の文字列
C++文字
C++には文字を扱う型が3種類あります。(多い・・・)
①char
マルチバイト文字を扱う型です。
マルチバイト文字とはMSDN曰く
「1バイトもしくは2バイトで表す文字」
だそうです。
②wchar_t
ワイド文字を扱う型です。
ワイド文字とは常に16ビットつまり2バイトで表す文字のことです。
③TCHAR
汎用文字列です。
TCHARは以下のように定義されています。
#ifdef UNICODE typedef WCHAR TCHAR; #else typedef char TCHAR; #endif
UNICODEが定義されているときはWCHAR、
いないときはcharになるそうです。
まぁ一種のマクロのようなものみたいですね。
私はこの存在を大分後になって知ったので主にwchar_tを使っています。
ですが、使えるならこれを使うのが安牌だと思います。
C++文字列
C++には文字列を扱う型が2種類あります。
①std::string
char型の文字列を表します。
②std::wstring
wchar_t型の文字列を表します。
(TCHARのstringがない理由はわかりません・・・マクロっぽい動きだから出来ないのかな?)
これらにはインスタンス、ポインタどちらを入れても動くようです。
LPとかCとか
LPCTSTRとかLPSTRとか見たことあると思います。
これはそれぞれが意味を持っています。
LP = ポインタ
C = const
TSTR = TCHAR
STR = char
WSTR = WCHAR(wchar_t)
という意味です。
あとがき
今回はC++の文字周りをまとめてみました。
基本はTCHARで操作して値の保存はstringかwstring使っとくと、
よくわからない詰まり方はしにくいと思います。
それでは今回はこの辺でノシ