编写代码中,代码中的字符串类型,应尽量使用宽字节类型,如 wchar_t,DWORD,
因为自Windows NT开始,Windows的所有版本都使用Unicode来实现,纵然你使用的是ANSI字符串,函数也会首先转为Unicode来构建,
所以使用宽字节类型字符串,效率更高,更加节省资源,更加贴近国际化.
同样,我们在创建项目的时候,尽量要使用Unicode格式选项,这样编译器会默认我们使用的是宽字符字符串类型,
我们在编写源代码的时候,也请统一使用wchar_t或者TCHAR作为字符串的类型.
使用统一的宽字符串类型,有利于我们进行统一化管理.
TCHAR是通用字符类型,只有选择了Unicode选项来进行项目设置的时候,它表示的是WCHAR类型,否则,则TCHAR代表char.
在中国,基于用户经常输入汉字作为字符串 传递给程序的时候,如果使用char类型会非常的不方便,
所以,统一使用Unicode类型,将会极大的减轻我们char转化为wchar_t的负担,同样,也可以使得程序代码更加统一和简洁.
注意:
使用通用类型TCHAR,注意以下3点:
凡是使用char的地方,都用TCHAR取代;
凡是用char*的地方,都用LPTSTR取代;
凡是定义在双引号中的字符串常量,都用TEXT宏或者_T宏重写.(例子:TCHAR Tstr = _T("这是一个宽字符常量!");)
对应的通用字符类型TCHAR处理函数(相对应C\C++中的char字符处理函数),如下所示
取字符串长度 | strlen (C\C++) | _tcslen (TCHAR)
字符串复制 | strcpy (C\C++) | _tcscpy (TCHAR)
字符串连接 | strcat (C\C++) | _tcscat (TCHAR)
字符串比较 | strcmp (C\C++) | _tcscmp (TCHAR)
数据格式化成字符串 | sprintf (C\C++) | _stprintf (TCHAR)
字符串转为浮点数 | atof (C\C++) | _tstof (TCHAR)
另外,如果要在屏幕打印Unicode字符串,需要在程序入口处设置下本地属性.
#include <locales.h> //语言本地化处理函数头文件,其中包含中文,日文,韩文,意大利文,俄文等许多个国家字符串输出的函数
int _tmain(int argc, _TCHAR* argv[])
{
//设置本地属性
setlocale(LC_ALL,"CHS");//------------>设置本地属性为中文 chs表示中国文字的意思 china string?
_stprintf("%s",L"中国文字!!"); 输出宽字符类型的字符串--->"中国文字!!"
//其他代码.
}