ATL提供的所有转换宏

来源:互联网 发布:仓库数据采集器 软件 编辑:程序博客网 时间:2024/05/24 15:36

在头文件<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

WOLE

宽字符串,也就是 UNICODE

T

中间类型T。如果定义了 _UNICODE,则T表示W;如果定义了 _MBCS,则T表示A

C

const 的缩写

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

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

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

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

0 0