最近在做QT项目中遇到一个问题,在Qt中调用MFC编写的动态库,出现内存泄露,没找到原因。由于这些库年代久远,内部代码也比较复杂,又不能轻易丢弃。于是我想把它们做成COM组件再试试。以下是一个简单COM组件编写和调用的完整流程,VS2015。

1. 新建一个ATL项目

 

工程建好后,会自动生成两个 项目,只需要关注第一个就可以了。

2. 添加自定义接口对象, MFCComObject ATL简单对象

项目中添加了 CMFCComObject 类和 IMFCComObject 接口。只需要在IMFCComObject接口中添加方法,并实现自定义功能。

3. 添加自定义方法 DoSomething

找到添加的DoSomething方法,加上方法实现。编译后生成对应的dll文件

编译后,VC自动完成了COM组件注册,也可以手动调用 regsvr32.exe进行注册。至此,COM组件已经编写完成。

接下来就可以调用MFCComObject的DoSomething方法了。新建一个控制台程序,导入MFCCom.dll文件

直接编译一下,会生成相应的MFCCOM.tlh和MFCCom.tli文件,打开文件可以看到IMFCComObject接口的定义

然后添加DoSomething方法的调用代码

编译运行即可

C++编写COM组件 ATL工程相关推荐

  1. VS2012创建ATL工程及使用MFC测试COM组件

    VS2012创建ATL工程及使用MFC测试COM组件 原创  2015年01月22日 16:23:21

  2. VS2010创建ATL工程及使用C++测试COM组件

    VS2010创建ATL工程及使用C++测试COM组件 1.创建ATL项目,取名MyCom 2. ATL 项目向导,勾选 [支持COM+ 1.0]和[支持部件注册器],其他默认,点击完成. 3.在该项目 ...

  3. C++基于ATL工程编写ActiveX控件

    开发环境:VS2010 开发工程:C++ATL项目 开发目的:创建ActiveX实现js调用 步骤: 1.      创建一个ATL工程 应用程序类型选择动态链接库(DLL),勾选支持COM+1.0, ...

  4. React学习(三):通过 React 编写名片组件(React属性)

    阿里云服务器0元试用,首购低至0.9元/月起 [开发云]年年都是折扣价,不用四处薅羊毛 前置内容阅读 React学习(二):编写 React 组件并成功挂载 效果预览: 1. 启动 my-projec ...

  5. 编写react组件_React组件的“黄金法则”如何帮助您编写更好的代码

    编写react组件 以及钩子如何发挥作用 (And how hooks come into play) Recently I've adopted a new philosophy that chan ...

  6. 用vue优雅地编写UI组件的几条指导原则

    前言 最近在尝试写几个UI组件,并通过阅读element-ui的源码,与其反复比较,然后认真思考,最后总结出一些自己的一些心得和体会.在造轮子的过程中,既巩固了html,css,js基础,又加深了对v ...

  7. DELPHI怎样编写COM组件

    元旦闲来无事,学习一下DELPHI怎样编写COM组件.结果一试才发现问题多多,要么是找不到接口,要么是找不到方法.查了很多资料,发现说的都不清楚.现在把我所学到的和大家分享一下,希望新学的人能少走弯路 ...

  8. vue 如何生成一个dom元素_通过一个简单的示例学习如何编写Vue组件

    大家好,本篇文章我将带着大家一起学习如何编写自定义组件(Components),通过「vue基础」新手快速入门篇(一)这篇文章的学习,我们知道了 Vue 设计的目的就是为了方便我们创建基于组件UI的项 ...

  9. 编写react组件_s! 这就是为什么ReasonReact是编写React的最佳方法的原因

    编写react组件 Are you using React to build user interfaces? Well, I am too. And now, you'll learn why yo ...

  10. 编写react组件_如何编写第一个React.js组件

    编写react组件 React的函数和类组件,道具,状态和事件处理程序 (React's function and class components, props, state, and event ...

最新文章

  1. opencv python 多帧降噪算法_防抖技术 | OpenCV实现视频稳流
  2. [WinAPI] API 4 [注册][创建][消息][第一个框架类窗口]
  3. 如何优雅的研究 RGSS3 (七) 加入LOGO屏幕
  4. 在C盘和D盘执行php 结果不同,window_双系统电脑给C盘扩容后导致D盘Win10引导项丢失该怎么办?,为了写个经验,特意把C盘用无 - phpStudy...
  5. python连接kafka-python连接kafka生产者,消费者脚本
  6. switch使用中遇到的问题
  7. 第三十一期:世界上有四类人永远不可能成为编程界牛人(个人见解,欢迎补充)
  8. AnalyticDB for PG 如何作为数据源对接帆软 FineBI
  9. java entity转dto_java 使用反射在dto和entity 实体类之间进行转换
  10. 【算法分析与设计】习题分享
  11. protobuf反射详解
  12. 由中缀式转化为后缀式
  13. 学习笔记(3):SAP S4 HANA财务模块入门到精通-供应商自动付款的操作-Fiori
  14. 使用playsound播放音频(python)
  15. 使用开源文档工具docsify,用写博客的姿势写文档
  16. 币小秘:如何才能减少被套,降低风险!
  17. redis服务之主从复制、哨兵模式、群集模式
  18. (学习笔记)JAVA开发需要掌握哪些技术?
  19. SIPP测试使用指导
  20. Qlikview配置ODBC连接SQL SERVER/ORACLE

热门文章

  1. ubuntu 16.04安装显卡驱动
  2. 【转】OC门与线与逻辑(含逻辑图)
  3. 深入浅出SCSI子系统(六)SCSI 磁盘驱动
  4. 史上最详细Oracle 10g安装教程
  5. android onenote字体,【完美解决】OneNote中英文字体不统一,微软10多年未解决的Bug!...
  6. mapgis矢量化怎么打分数_MapGIS67操作手册(3-12)MapGIS67矢量化的基本流程
  7. java 计算器 junit测试_Java—Junit单元测试
  8. rubyinstaller官网无法访问的解决办法
  9. devexpress gridview属性详细(全部属性以及常用属性)
  10. android dmp文件解析,用minidump_stackwalk分析dmp文件失败