ATL字符串转换宏

有比MultiByteToWideChar和WideCharToMultiByte更简单的字符串转换宏,你相信吗?
头文件 d:\program files\microsoft visual studio 8\vc\atlmfc\include\atlconv.h
如果要使用ATL字符串转换宏,请先定义 USES_CONVERSION; // 只需要调用一次,就可以在函数中进行多次转换

下面一个例子:

使用 ATL 转换宏,由于不用释放临时空间,所以使用起来非常方便。但是考虑到栈空间的尺寸(VC 默认2M),使用时要注意几点:

1、只适合于进行短字符串的转换;

2、不要试图在一个次数比较多的循环体内进行转换;

3、不要试图对字符型文件内容进行转换,因为文件尺寸一般情况下是比较大的;

4、对情况 2 和 3,要使用 MultiByteToWideChar() 和 WideCharToMultiByte();

使用 ATL 提供的转换宏。

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 的缩写

Original: https://www.cnblogs.com/MaxWoods/p/4093739.html
Author: Max Woods
Title: ATL字符串转换宏

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/552606/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Docker容器网络(七)

    文章目录 概述 docker创建的默认网络 查看当前运行容器的网络 常用的网络驱动程序 * 自定义的network bridge(桥接网络驱动程序) overlay(覆盖网络驱动程…

    技术杂谈 2023年7月24日
    0112
  • 《Tornado介绍》—— 读后总结

    作者:xingoo 出处:http://www.cnblogs.com/xing901022 posted @2019-01-24 08:29 xingoo 阅读(1037 ) 评…

    技术杂谈 2023年5月30日
    0115
  • Uri: getLastPathSegment()

    该函数可用于截取URI当中的文件名。比如一段 URI如下: content://media/external/file/61585 调用该函数得到的结果为: 61585 也就是简化…

    技术杂谈 2023年6月1日
    0100
  • 开源框架是如何使用设计模式的-MyBatis缓存机制之装饰者模式

    写在前面 聊一聊MyBatis是如何使用装饰者模式的,顺便回顾下缓存的相关知识,可以看看右侧目录一览内容概述。 装饰者模式 这里就不聊它的概念了,总结下就是套娃。利用组合的方式将装…

    技术杂谈 2023年7月25日
    080
  • JAVA基本类型和包装类型

    JAVA基本类型和包装类型 前言 Java语言中的数据类型分为基本数据类型和引用类型,而我们进行Java开发的时候都听说过基本数据类型和包装类型,今天我们就来详细聊一聊Java中的…

    技术杂谈 2023年6月21日
    096
  • 理解Hive 不同组件的功能

    Hive功能通过将SQL转换成MR、Spark等任务,来计算HDFS中数据的工具。Hive是基于Hadoop之上的数仓工具。通过HDFS存储真实的数据,通过YARN运行计算任务(M…

    技术杂谈 2023年5月31日
    0110
  • 8086汇编 中断

    8086汇编 中断 中断:CPU不再接着(刚执行完的指令)向下执行,而是转去处理中断信息。 内中断:由CPU内部发生的事件而引起的中断 外中断:由外部设备发生的事件引起的中断 80…

    技术杂谈 2023年6月1日
    097
  • 香一下子

    一年了 ,希望自己不要没事就emo了,工作生活平衡一下子。 Original: https://www.cnblogs.com/deepSleeping/p/16847104.ht…

    技术杂谈 2023年7月25日
    087
  • 基于人工智能标记语言 (AIML)和任务型对话系统(Task)的深度智能对话机器人demo

    起因 本demo基于基于人工智能标记语言 (AIML)和开放域问答(WebQA)的深度智能对话模型 而来 无意间发现一个基于人工智能标记语言 (AIML)和开放域问答(WebQA)…

    技术杂谈 2023年6月21日
    0108
  • Vue-Express

    1、移动端常用UI组件库 1、Vant https://youzan.github.io/vant 2、CodeUI https://didi.github.io/cube-ui …

    技术杂谈 2023年6月1日
    0106
  • ElasticSearch学习笔记(详细)

    ElasticSearch概述 ElasticSearch入门 安装 基本操作 查看es相关信息 索引操作 文档操作 bulk批量API 进阶检索 Search API Query…

    技术杂谈 2023年7月10日
    087
  • PyQt5 顶层窗口API

    ################################ PyQt5中文网 – PyQt5全套视频教程 # https://www.PyQt5.cn/ # 主讲: 村长 #…

    技术杂谈 2023年5月31日
    0103
  • 日常踩坑_下载文件时文件名是乱码

    背景提要 一个下载文件的controller,下载下来内容虽然正常,但是文件名一直是乱码。 解决 需要清晰的一点就是,下载的文件名仅与请求头有关所以实际只要设置一下 respons…

    技术杂谈 2023年7月25日
    060
  • linux全新机器环境搭建流程梳理

    软件解压后安装基础指令(复制用):./configure && make && make install ./configure –pr…

    技术杂谈 2023年7月11日
    085
  • EMAS Serverless到底有多便利?

    EMAS Serverless 简介 EMAS Serverless 是阿里云提供的基于Serverless技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务,包含…

    技术杂谈 2023年7月10日
    080
  • Mac下Charles踩坑记录

    初次使用Charles,摸索着抓包的过程中遇到了很多问题。在这里一一记录一下,避免其他初学者踩坑。 问题1:不显示request和response? 在Charles的配置页面可以…

    技术杂谈 2023年7月24日
    064
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球