0
点赞
收藏
分享

微信扫一扫

C++编写COM组件 ATL工程

木樨点点 2022-03-26 阅读 61
windowsc++

最近在做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方法的调用代码

 

编译运行即可

 

 

 

举报

相关推荐

0 条评论