C++编写COM组件 ATL工程

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

 

编译运行即可

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值