您的位置:首页 > 其它

ATL提供的所有转换宏

2017-05-05 13:19 204 查看
在头文件<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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐