L'Isola di Niente
L'Isola di Niente » tchar.h 対応表

tchar.h 対応表

ジェネリック版ライブラリ関数対応表
(バッファオーバーラン対策関数がある場合はそちらを記述)

入出力
用途 ジェネリック ANSI UNICODE
書式付きファイル出力 _ftprintf_s fprintf fwprintf
書式付きファイル入力 _ftscanf_s fscanf fwscanf
標準入力から一文字入力 _gettchar_s getchar getwchar
書式付きバッファ出力 _stprintf_s sprintf swprintf


文字列操作
用途 ジェネリック ANSI UNICODE
文字列コピー _tcscpy_s strcpy wcscpy
長さ指定の文字列コピー _tcsncpy_s strncpy wcsncpy
文字列結合 _tcscat_s strcat wcscat


文字列比較
用途 ジェネリック ANSI UNICODE
文字列比較(大小文字区別) _tcscmp strcmp wcscmp
文字列比較(大小文字無視) _tcsicmp _stricmp _wcsicmp
長さ指定の文字列比較(大小文字区別) _tcsncmp strncmp wcsncmp
長さ指定の文字列比較(大小文字無視) _tcsnicmp _strnicmp _wcsnicmp
文字列検索 _tcsstr strstr wcsstr


文字列に書式付きデータを書き込み
用途 ジェネリック ANSI UNICODE
文字列比較(大小文字区別) _stprintf_s sprintf swprintf


TCHAR マクロとは

VC++ は v2005 からデフォルトで扱う文字コードが UNICODE になりました。
コードページ932(Shift-JIS)でのビルドも可能ですがもはや時代遅れです。
NT 系の Windows 自体が UNICODE で動いているのでなるべく UNICODE でのビルドを心がけましょう。

とはいえ Windows 9* 系もサポートを行わなければいけない場合があります。
その場合に使うのが TCHAR マクロです、拙作では minipoli で使っていました。

動作

とりあえず普通に新規ソリューションを作ってみてください。
一番解りやすいのがエントリポイントですね。
int APIENTRY _tWinMain(以下略)
この「 _t 」が付くものが TCHAR マクロです。このマクロによりコンパイル時に
UNICODE = wWinMain | 非UNICODE = WinMain と書き換えられてからコンパイルが行われます。
そうです、UNICODE ビルドでは今までとはエントリポイントが違うというわけです。
何がどう置き換えされるかは tchar.h をじっくりと眺めてください。

又、文字列では TCHAR("あいうえお") なんて使い方をしますが
UNICODE = L"あいうえお" | 非UNICODE = "あいうえお" と振り分けられます。
Copyright(C) sasakima-nao All rights reserved 2002 --- 2017.