WIN API – 1. 程序国际化设计 1. Win32程序中标准字符、宽字符的定义 2. 统一源码的方法

1.1 标准字符

定义字符、字符串等的例子如下:

  char c=’a’;

  char *c=”hello”;

  char c[]=”world”;

  strlen();

1.2 宽字符

在头文件WCHAR.H中定义。

  typedef  unsigned  short  wchar_t;

UNICODE或宽字符例子如下:

  wchar_t c=’a’    (或L’a’)

  wchar_t c=L”hello”;

  wchar_t c[]=L”world”;

  wcslen();

2. 统一源码的方法

因为有不同定义的字符串,可能需要维护两份源代码,一份用于处理ASCII字符串类型,另一份用于处理UNICODE类型字符串,为了方便维护源代码,只维护一份源代码,有多种方法。

2.1 法一

使用VC的TCHAR.H文件,该文件不是ANSI C标准。

通过文件中的 _UNICODE 标识符,判断字符串类型。

无 _UNICODE 时的含义

有 _UNICODE 时的含义

__T(x)

别名:_T(x)、_TEXT(x)

x

L”x”

TCHAR

char

Wchar_t

_tcslen

strlen

wcslen

2.2 法二

使用WINDOWS.H头文件(此头文件将包含WINNT.H文件,具体信息将在此文件中定义)

通过文件中的 UNICODE标识符,判断字符串类型。

新的名称

Char

CHAR

Wchar_t

WCHAR

无 UNICODE 时的含义

有UNICODE 时的含义

__TEXT(x)

别名:TEXT(x)

x

L”x”