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(); 

  • 相关阅读:
    libcurl在mac上编译
    Kafka入门经典教程
    mac kafka 环境搭建 以及PHP的kafka扩展
    Mac下安装php-memcached扩展
    Mac使用brew安装nginx,并解决端口80访问权限问题
    Git的基本使用汇总整理
    MySQL InnoDB 共享表空间和独立表空间
    VB中如何修改treeview的背景色
    转:Python yield 使用浅析
    设置TreeView背景色
  • 原文地址:https://www.cnblogs.com/qxzy/p/3950785.html
Copyright © 2011-2022 走看看