ATL提供的所有转换宏
2017-05-05 13:19
204 查看
在头文件<atlconv.h>中定义了ATL提供的所有转换宏,如:
A2CW (LPCSTR)
-> (LPCWSTR)
A2W (LPCSTR)
-> (LPWSTR)
W2CA (LPCWSTR) -> (LPCSTR)
W2A (LPCWSTR) -> (LPSTR)
所有的宏如下表所示:
上表中的宏函数,非常的有规律,每个字母都有确切的含义如下:
利用这些宏,可以快速的进行各种字符间的转换。使用前必须包含头文件,并且申明USER_CONVERSION;
使用 ATL
转换宏,由于不用释放临时空间,所以使用起来非常方便。
但是考虑到栈空间的尺寸(VC
默认2M),使用时要注意几点:
1、只适合于进行短字符串的转换;
2、不要试图在一个次数比较多的循环体内进行转换;
3、不要试图对字符型文件内容进行转换,因为文件尺寸一般情况下是比较大的;
4、对情况 2
和 3,要使用
MultiByteToWideChar() 和 WideCharToMultiByte();
A2CW (LPCSTR)
-> (LPCWSTR)
A2W (LPCSTR)
-> (LPWSTR)
W2CA (LPCWSTR) -> (LPCSTR)
W2A (LPCWSTR) -> (LPSTR)
所有的宏如下表所示:
A2BSTR | OLE2A | T2A | W2A |
A2COLE | OLE2BSTR | T2BSTR | W2BSTR |
A2CT | OLE2CA | T2CA | W2CA |
A2CW | OLE2CT | T2COLE | W2COLE |
A2OLE | OLE2CW | T2CW | W2CT |
A2T | OLE2T | T2OLE | W2OLE |
A2W | OLE2W | T2W | W2T |
2 | to 的发音和 2 一样,所以借用来表示“转换为、转换到”的含义。 |
A | ANSI 字符串,也就是 MBCS。 |
W、OLE | 宽字符串,也就是 UNICODE。 |
T | 中间类型T。如果定义了 _UNICODE,则T表示W;如果定义了 _MBCS,则T表示A |
C | const 的缩写 |
使用 ATL
转换宏,由于不用释放临时空间,所以使用起来非常方便。
但是考虑到栈空间的尺寸(VC
默认2M),使用时要注意几点:
1、只适合于进行短字符串的转换;
2、不要试图在一个次数比较多的循环体内进行转换;
3、不要试图对字符型文件内容进行转换,因为文件尺寸一般情况下是比较大的;
4、对情况 2
和 3,要使用
MultiByteToWideChar() 和 WideCharToMultiByte();
相关文章推荐
- 不同类型变量转换---------ATL提供的所有转换宏
- 将泛型集合类(List<T>)转换成DataTable,返回的DataTable所有列的数据类型为string型,且列顺序与字符串提供的字段顺序一致
- 使用 ATL 提供的转换宏进行类型转换 LPSTR LPCSTR LPWSTR LPCWSTR
- 使用 ATL 提供的转换宏进行类型转换 LPSTR LPCSTR LPWSTR LPCWSTR
- ATL 提供的转换宏
- 网上找了一段代码,利用MemoryStream来存储分块的数据包,将其转换成为byte[]后,所有字节都为0.找到问题了。
- 开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供)
- C#调用C++的DLL 所有数据类型转换方式
- 【★更新★】整理发布本人所有博文中提供的代码与工具(C++)
- 【★更新★】整理发布本人所有博文中提供的代码与工具(Java)
- grpc-gateway:grpc转换为http协议对外提供服务
- 更新整理本人所有博文中提供的代码与工具(Java,2013.08)
- 微软例子:NetUserEnum函数提供有关服务器上所有用户帐户的信息。
- OpenflashChart(三) Flash转换成image,并插入Excel,Excel提供下载
- grpc-gateway:grpc转换为http协议对外提供服务
- 十六进制内所有进制转换!!!!速度快,运算简单,java
- vc字符串转换处理:(绝对精华,收集所有的例子)
- 条款24:若所有参数皆需类型转换,请为此采用non-member函数
- 用ATL的W2A和A2W宏转换Unicode与ANSI字符串
- 泛型技巧系列:如何提供类型参数之间的转换