标签:
Unicode是ASCII字符编码的一个扩展,Unicode用16位字符编码。
ASCII美国国家信息交换标准码,7位。
宽字符并不一定是Unicode,Unicode只是宽字符编码的一种实现。
wchar_t a = L‘a‘; wchar_t *p = L"Hello!";//大写的L紧接左引号,向编译器表明这个字符串将用宽字符存储。L和"之间不能有空格。
处理宽字符的函数定义在:string.h和wchar.h中。
Windows头文件的类型:
windef.h,该文件中有许多在windows中使用的基本数据类型的定义。同时它本身包含winnt.h,winnt.h负责处理基本的unicode支持功能。
//WINNT.H中定义了CHAR和WCHAR数据类型: typedef char CHAR; typedef wchar_t WCHAR; //WINNT.H头文件定义了可用做8位字符串指针的6中数据类型和可用做const 8位字符串指针的4中数据类型。 typedef CHAR *PCHAR, *LPCH, *PCH, *NPSTR, *LPSTR, *PSTR; typedef CONST CHAR *LPCCH, *PCCH, *LPCSTR, *PCSTR; //前缀N和L代表近和预案,指的是16位Windows系统中两种大小不同指针,在Win32中near和long指针则没有区别。 //WINNT.H头文件定义了可用做16位字符串指针的6中数据类型和可用做const 16位字符串指针的4中数据类型。 typedef WCHAR *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR; typedef CONST WCHAR * LPCWCH, *PCWCH, * LPCWSTR, *PCWSTR;
每个用字符串作参数的Win32函数,都在操作系统中有两个入口点,ASCII版和宽字符版。
标签:
原文地址:http://www.cnblogs.com/gongyan/p/4340135.html