ATL提供的所有转换宏

xiaoxiao2021-02-28  128

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

转载请注明原文地址: https://www.6miu.com/read-22454.html

最新回复(0)