A2W和W2A :很好的多字节和宽字节字符串的转换宏

简介: 以前看《Window核心编程》,感觉多字节和宽字节之间还比较麻烦的,至少MultiByteToWideChar函数和WideCharToMultiByte函数有足够多的参数的意义让我们去理解。近日接触了ATL的一个很好的字符串的转换宏:A2W和W2A。

以前看《Window核心编程》,感觉多字节和宽字节之间还比较麻烦的,至少MultiByteToWideChar函数和WideCharToMultiByte函数有足够多的参数的意义让我们去理解。近日接触了ATL的一个很好的字符串的转换宏:A2W和W2A。

 

      

用法很简单,A2W的用法:

 

      

[cpp]  view plain copy
  1.         #include <atlconv.h>  
  2. DoSomething(LPWSTR str);  //  函数声明  
  3.   
  4. USES_CONVERSION;  
  5. DoSomething(A2W("SomeString"));  

 

 

       W2A的用法:

 

   

[cpp]  view plain copy
  1. #include <atlconv.h>  
  2. DoSomething(LPCSTR str); //  函数声明  
  3.   
  4.  USES_CONVERSION;  
  5. DoSomething(W2A(L"SomeString"));  

 

 

   

另外使用这两个宏时最好把它们单独放入一个函数实现,具体原因见:

谨慎使用A2W等字符转换宏

 

另外这儿一篇详细介绍这两个宏的原理的文章:VC中一个关于宏的使用问题

 

 

目录
相关文章
|
6月前
|
自然语言处理
转换流,字节字符的转换
转换流,字节字符的转换
|
10月前
|
C语言
宏定义设置x二进制序列的第n个比特位为1或者0
宏定义设置x二进制序列的第n个比特位为1或者0
|
11月前
|
C语言
【C语言】强制指针变换,将多字节数据转成单字节数据
【C语言】强制指针变换,将多字节数据转成单字节数据
|
Java
java 类型转化:(数值型~整型、浮点型←----→非数值型~字符串、字节;以及 字符串←----→字节(字节数组)
java 类型转化:(数值型~整型、浮点型←----→非数值型~字符串、字节;以及 字符串←----→字节(字节数组)
140 0
|
存储 数据处理
位,字节与字
位、字节、字(bits, Bytes, words)是计算机数据存储的单位。位是最小的存储单位,每一个位存储一个1位的二进制码(0 or 1),一个字节由8位(8个二进制0 or 1 串)组成。而字通常为16、32或64个位组成。
681 0
|
存储
字符与字节有什么区别呢?
1、计算机存储信息的最小单位,称之为位(bit),音译为比特,二进制的一个“0”或一个“1”叫一位。 2、计算机存储容量基本单位是字节(Byte),音译为拜特,8个二进制位组成1个字节。一般而言:一个标准英文字母占一个字节位置,一个标准汉字占二个字节位置。
3479 0