○Unicodeおぼえ
Unicodeを使うか使わないかは、
VC プロジェクトのプロパティ→構成プロパティ→全般→文字セット
→Unicode文字セットを使用する
→マルチバイト文字セットを使用する
により切り替えることができる
■文字コード
WinNT.hを見ると
#ifdef UNICODE
typedef WCHAR TCHAR
#else
typedef char TCHAR
#endif
つまり、UNICODEが定義されている場合には
TCHARはWCHARに置き換えられ、
定義されていない場合には
TCHARはcharになる
ちなみに
typedef wchar_t WCHAR;
WCHAR は wchar_t である
charを使用する所でTCHARを使うと、マクロにより自動的に変数が切り替えられる
また、TCHARを使った場合にはTCHAR用の関数を利用する必要がある
詳細はtchar.hを見ると書かれている
printf _tprintf
sprintf _stprintf
scanf _tscanf
fgetc _fgettc
fgets _fgetts
fputc _fputtc
fputs _fputts
getc _gettc
getchar _gettchar
gets _getts
gets _getts
putc _puttc
puts _putts
strtod _tcstod
strtol _tcstol
strtoul _tcstoul
atof _tstof
atol _tstol
atoi _tstoi
atoi _ttoi
atol _ttol
strcat _tcscat
strcpy _tcscpy
strlen _tcslen
system _tsystem
fopen _tfopen
■リテラル文字の変換
マルチバイトなら何もしない
ユニコードだとユニコードとして扱われる
TCHAR*test=TEXT("aaaa");
TCHAR test=TEXT('a');
■LPCSTRなど
LPSTR は *char であり、
LPWSTR は *wchar_t であり、
LPTSTR は *TCHAR である
つまり、読み方として、
LP はポインタ
C はconst
STR はchar
TSTR はTCHAR
WSTR はwchar_t
▲トップページ
>
Windows と C++