使用一般文本映射

Microsoft 专用

为了简化各种国际市场的代码开发, Microsoft 运行库提供许多数据类型、例程和其他对象提供特定于 Microsoft 的 “一般文本映射”。这些映射。 TCHAR.H. 定义。可以使用这些名称映射到可用于任何这三个生成字符集的通用代码:ASCII (SBCS) 使用 #define 语句,中, MBCS 或 Unicode,根据一个清单常数您定义。一般文本映射是不符合 ANSI 的 Microsoft 扩展。

一般文本映射的预处理器指令

# define

编译版本

示例

_UNICODE

Unicode (宽字符)

_tcsrev 映射到 _wcsrev

_MBCS

多字节字符

_tcsrev 映射到 _mbsrev

无 (默认值: _UNICODE 和 _MBCS 未定义)

SBCS (ASCII)

为 strrev的_tcsrev映射

例如,一般文本功能 _tcsrev,定义在 TCHAR.H,映射到 mbsrev ,如果 MBCS 在过程定义,或将 _wcsrev,如果 _UNICODE定义。否则为 strrev的 _tcsrev映射。

一般文本数据类型 _TCHAR,还定义在 TCHAR.H,映射键入 char ,如果 _MBCS 定义,键入 wchar_t ,如果 _UNICODE 定义并键入 char ,如果两个常数未定义。其他数据类型映射。 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 重复)

有关完整的实例,变量一般文本映射,同时,其他对象,请参见 一般文本映射

下面的代码片段演示如何使用 _TCHAR 和 _tcsrev 的映射到 MBCS、 Unicode 和 SBCS 模型。

_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);

因此可以编写,维护和生成单个源代码文件运行带有特定于三种字符集中任何一种实例。

特定于 Microsoft 的结尾

请参见

参考

一般文本映射

数据类型映射

常数和全局变量映射

实例映射

示例一般文本程序