zoukankan      html  css  js  c++  java
  • 【转】ATL提供的所有转换宏

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

  • 相关阅读:
    阿里架构师说Kafka工作原理归纳,实践通俗易懂!我咋不信呢
    2020做Java的都看这篇文章,面试一次过、升职加薪,赶快来Get
    IDEA最牛配置,众享丝滑
    在IDEA中搭建Java源码学习环境并上传到GitHub上
    Linux基本命令
    正向代理与反向代理
    Spring Boot中使用MyBatis详解
    ftp命令详解
    CentOS7设置中文字符集
    CentOS7计划任务crontab
  • 原文地址:https://www.cnblogs.com/MakeView660/p/7723051.html
Copyright © 2011-2022 走看看