Windows编程 Unicode编码和通用字符类型TCHAR


   编写代码中,代码中的字符串类型,应尽量使用宽字节类型,如 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"中国文字!!");  输出宽字符类型的字符串--->"中国文字!!"
         //其他代码.
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

°默然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值