fenri's diary

基本的には勉強し始めたC#のメモ。後は140字で収まらない駄文。

文字コードについて

マルチバイト文字セット
ASCII
char型
Shift-JIS

ワイド文字セット
Unicode
wchar_t型(WCHAR型)


マルチバイト文字セットを使用する でビルドする環境

LPSTR	= char*
LPCSTR	= const char*
LPTSTR	= TCHAR*       = char*
LPCTSTR	= const TCHAR* = const char*
LPWSTR	= WCHAR*
LPCWSTR	= const WCHAR*


Unicode文字セットを使用する でビルドする環境

LPSTR	= char*
LPCSTR	= const char*
LPTSTR	= TCHAR*       = WCHAR*
LPCTSTR	= const TCHAR* = const WCHAR*
LPWSTR	= WCHAR*
LPCWSTR	= const WCHAR*


L"文字列" Unicode文字列
TestFunc( _T("文字列") ); ビルド環境で変わる
TestFunc( _TEXT("文字列") ); ビルド環境で変わる


_Tマクロはユニコード設定とマルチバイト設定の差異を解消するためのマクロで
ユニコード設定ならL"文字列"として展開し、 マルチバイト設定なら従来どおり"文字列"とLは付加せずに展開されます。
_Tと_TEXTは同じマクロなので通常は短い_Tが使われます。