所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码.而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE。
自Windows NT起 Windows所有版本都完全用Unicode来构建。即所有核心函数(创建窗口,显示文本,进行字符串处理等)都需要unicode字符串,调用windows函数时,如果传入一个ANSI字符串,那么函数首先会把字符串转化为Unicode,再把结果传给操作系统。
开发windows程序的时候最好使用Unicode字符和字符串
1.Unicode有利于程序的本地化
2.使用Unicode 只需发布一个二进制(.exe或者.dll)文件,即可支持所有语言
3.Unicode提升了应用程序的效率 因为代码执行的速度更快,占用内存更少,windows内部的一切工作都是使用Unicode字符和字符串来进行的。所以 如果坚持传入ANSI字符或者字符串,windows就会被迫分配内存,并将ANSI字符或者字符串转换为等效的Unicode形式
4.使用Unicode程序可以轻松调用所有尚未弃用的windows函数 因为一些windows函数提供的版本只能处理unicode字符和字符串
5.使用unicode 应用程序代码很容易与com集成
6.使用unicode 应用程序代码很容易与.net framework集成
7.使用unicode 能保证应用程序代码能够轻松操作我们自己的资源(其中的字符串总是 unicode形式)