04Windows中的字符类型

1. Windows 中常用的数据类型定义
//WinNt.h中定义
typedef unsigned short wchar_t;		//A 16-bit character
typedef char CHAR;					//An 8-bit character
typedef wchar_t WCHAR; 				//A 16-bit character

//Pointer to 8-bit character(s)
typedef CHAR *PCHAR;
typedef CHAR *PSTR;
typedef CONST CHAR *PCSTR

//Pointer to 16-bit character(s)
typedef WCHAR *PWCHAR;
typedef WCHAR *PWSTR;
typedef CONST WHCAR *PCWSTR;

//利用这些类型和宏来写代码,乌龙使用 ANSI 还是 Unicode 字符,它都能通过编译。
#ifdef UNICODE
typedef WCHAR TCHAR, *PTCHAR, PTSTR;
typedef CONST WCHAR *PCTSTR;
#else
typedef CHAR TCHAR, *PTCHAR, PTSTR;
typedef CONST CHAR *PCTSTR;
#endif
2. 为何要用 Unicode 进行开发
  • Unicode 有利于应用程序的本地化。
  • 使用 Unicode,只需发布一个二进制(.exe 或 DLL)文件,即可支持所有语言。
  • Unicode 提升了应用程序的效率,因此代码执行速度更快,占用内存更少。Windows 内部的一切工作都是使用 Unicode 字符和 Unicode 字符串来进行的。所以,假如我们坚持传入 ANSI 字符或字符串,Windows 就会被迫分配内存,并将 ANSI 字符或字符串转换为等价的 Unicode 形式。
  • 使用 Unicode,应用程序能够轻松调用所有尚未弃用(nondeprecated)的 Windows 函数,因为一些 Windows 函数提供的版本只处理 Unicode 字符和字符串。
  • 使用 Unicode,应用程序的的代码很容易与 COM 集成(后者要求使用 Unicode 字符和 Unicode 字符串)
  • 使用 Unicode,应用程序的的代码很容易与 .NET Framework 集成(后者要求使用 Unicode 字符和 Unicode 字符串)。
  • 使用 Unicode,能保证应用程序的代码能够轻松操纵我们自己的资源(其中的字符串总是 Unicode 形式的)。
道虽迩,不行不至;事虽小,不为不成。
原文地址:https://www.cnblogs.com/rock-cc/p/9419045.html