从零开始学MFC(4)——windows字符集(TEXT()宏,宽字节和多字节)

   刚开始程序中,1字符对于1个字节 多字节

   引入中文后 1个字符对于对于多个字节(可能是1个也可能是2个甚至是3个,跟具体的字符有关) 宽字节 编码方式如Unicode utf-8 GBK。

  前面的代码中,字符串前面必须要用宏TEXT()包起来。

  在vs2015中默认编码方式为Unicode,也就是宽字节,如果直接按照下面的代码编码就会报错:

MessageBox("aaa");   

 因为"aaa"表示多字节,和宽字节的Unicode编码方式不符。

 要将多字节转成宽字节,可以按照下面的方法编码,即加个L:

 MessageBox(L"aaa");   

 那么TEXT()的作用是什么?

 TEXT()的作用就是不管目标字符串的编码方式如何?它都将加进来的目标字符串转成编译器(这里是vs2015)配置的编码方式,这是一种自适应编码转换,另外,它还有两者形式  _T()宏和_TEXT()宏。

  相关的,MFC中还有一种TCHAR类型的字符串,它也是自适应编码转换,推荐在MFC中使用。

  相对于多字节求长度的strlen()方法,宽字节使用wcslen()方法。

 char *和CSringr之间的转换:

char *p = "ccc";
CString str = CString(p3);
CString tmp = str;
char *pp = tmp.GetBuffer();


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值