次の方法で共有


汎用テキスト マップの使用

Microsoft 固有の仕様 →

さまざまな国際市場向けのコード開発を単純化するにはMicrosoft ランタイム ライブラリには多くのデータ型やルーチンおよびそのほかのオブジェクトに Microsoft 固有の 「汎用テキスト」マッピングを提供します。これらのマッピングは TCHAR.H. で定義されます。文字セットの 3 種類のそれぞれに対してコンパイルできるジェネリック コードを作成するためにこれらの名前のマップを使用できます : SBCS ASCII ()マニフェスト定数にMBCSおよび Unicode#define のステートメントを使用して定義します。汎用テキスト マッピングは ANSI 互換の Microsoft 拡張機能です。

汎用テキスト マッピング用のプリプロセッサ ディレクティブ

#define

コンパイル後の状態

_UNICODE

ワイド (Unicode 文字)

_tcsrev は _wcsrev に割り当てられます。

_MBCS

マルチバイト文字

_tcsrev は _mbsrev に割り当てられます。

なし (既定値 : _UNICODE が _MBCS も定義されていない場合)

SBCS (ASCII)

strrev への _tcsrev のマップ

たとえば _UNICODE が定義されている場合 MBCS をプログラムで定義されている場合はmbsrev_wcsrevTCHAR.H にマップで定義されている汎用テキスト関数 _tcsrev。strrev には _tcsrev のマップ。

_MBCS が定義されている場合 char を入力しいずれかの定数が定義されていない場合 _UNICODE が定義されている場合 wchar_t を入力しchar を入力することもTCHAR.H マップで定義されている汎用テキスト データ型 _TCHAR。他のデータ型のマッピングはプログラミングの便宜上 TCHAR.H で提供されますが_TCHAR は最も有用な型です。

汎用テキストのデータ型のマップ

汎用テキスト データ型名

SBCS (定義されていない _UNICODE および _MBCS が未定義の場合)

_MBCS が定義されている場合

_UNICODE が定義されている場合

_TCHAR

char

char

wchar_t

_TINT

int

int

wint_t

_TSCHAR

signed char

signed char

wchar_t

_TUCHAR

unsigned char

unsigned char

wchar_t

_TXCHAR

char

unsigned char

wchar_t

_T または _TEXT

影響なし (プリプロセッサによって削除される)

影響なし (プリプロセッサによって削除される)

L (文字または文字列に従って Unicode 対応するに変換)

汎用テキスト ルーチンのマップの一覧については変数などのオブジェクトは汎用テキスト マッピング が表示されます。

次のコードはUnicode と MBCS SBCS モデルに対応付けるための _TCHAR と _tcsrev の使用例を示しています。

_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);

MBCS が定義されているとプリプロセッサによって次のコードを記述するフラグメントをマップします :

char *RetVal, *szString;
RetVal = _mbsrev(szString);

_UNICODE が定義されているとプリプロセッサによって次のコードはフラグメントをマップします :

wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);

_MBCS が _UNICODE が定義されていない場合プリプロセッサはバイト ASCII コードは次のようにフラグメントをマップします :

char *RetVal, *szString;
RetVal = strrev(szString);

したがって単一のソース ソース ファイルを作成および保守し文字セットの 3 種類のそれぞれに固有のルーチンを実行するようにコンパイルできます。

終了 Microsoft 固有の仕様→

参照

関連項目

汎用テキスト マップ

データ型のマップ

定数とグローバル変数のマップ

ルーチンのマップ

汎用テキストのプログラム例