博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】ATL提供的所有转换宏
阅读量:7009 次
发布时间:2019-06-28

本文共 772 字,大约阅读时间需要 2 分钟。

  在头文件<atlconv.h>中定义了ATL提供的所有转换宏,如:

  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 的缩写

      利用这些宏,可以快速的进行各种字符间的转换。使用前必须包含头文件,并且申明USER_CONVERSION;

      使用 ATL 转换宏,由于不用释放临时空间,所以使用起来非常方便。

      但是考虑到栈空间的尺寸(VC 默认2M),使用时要注意几点: 

     1、只适合于进行短字符串的转换; 
     2、不要试图在一个次数比较多的循环体内进行转换; 
     3、不要试图对字符型文件内容进行转换,因为文件尺寸一般情况下是比较大的; 
     4、对情况 2 和 3,要使用 MultiByteToWideChar() 和 WideCharToMultiByte();

转载地址:http://enttl.baihongyu.com/

你可能感兴趣的文章
JavaScript的数据类型及其检测
查看>>
类的执行顺序与this指针
查看>>
最牛Java架构师进阶路线
查看>>
西安电话面试:谈谈Vue数据双向绑定原理,看看你的回答能打几分
查看>>
[译]PEP 342--增强型生成器:协程
查看>>
技术团队管理笔记(一)-识人
查看>>
[iOS]仿 Airbnb 的 tableView 头部视图层叠效果
查看>>
09、React系列之 使用yarn包管理工具
查看>>
小议Linux安全防护(二)
查看>>
动态权限相关的几个库分析
查看>>
在 Postgres 上使用 HyperLogLog 进行去重计数
查看>>
【JS第27期】继承-原型链
查看>>
SpringBoot使用缓存
查看>>
如何实现一个无限循环的轮播图
查看>>
iOS蓝牙开发
查看>>
使用maven构建java9 service实例
查看>>
十三、Android studio环境的搭建
查看>>
ES6 系列之模板字符串
查看>>
JVM(四)垃圾回收的实现算法和执行细节
查看>>
对象解构与点操作访问究竟谁快
查看>>