WIN API – 1. 程序国际化设计

 

1. Win32程序中标准字符、宽字符的定义

 

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”

 

 

 

 

 

 

 

 

 

posted @ 2015-01-05 15:07  mutou3221  阅读(164)  评论(0编辑  收藏  举报