VS2010&MFC下创建COM组件的一个小Demo

VS2010&MFC下创建COM组件的一个小Demo
1.VS2015中,新建一个MFC项目,取名TestCom,如下图所示: 在这里插入图片描述
图表 1

在这里插入图片描述
图表 2

  1. 新建一个ATL项目ATLAlgo单独给算子用。右击解决方案“TestCom”——添加——新建项目——选择ATL项目——取名ATLAlgo——点击确定,如下图所示:
    在这里插入图片描述
    图表 3

应用程序类型选择“动态链接库(DLL)”,支持选项选择“允许合并代理/存根代码”,“支持MFC”,“安全开发生命周期(SDL)检查”,如下图所示:
在这里插入图片描述
图表 4
3.添加com组件。右击“ATLAlgo”项目——添加——类——选择ATL简单对象——点击添加,如下图:
在这里插入图片描述
图表 5
类取名为Algo1,如下图:
在这里插入图片描述
图表 6
线程模型选选择“单元”,接口选“双重”,支持选“ISupportErrorInfo”,聚合选“是”,点击完成,如下图:
在这里插入图片描述
图表 7
4.在com组件中添加方法。如下图:
在这里插入图片描述
图表 8
我们写个简单的返回两个数相加的函数:
Sum(long a,long b,*long nRet)
{
nRet = a+b;
}
首先添加3个参数,分别如下设置:
在这里插入图片描述
图表 9 添加参数a
在这里插入图片描述
图表 10 添加参数b
在这里插入图片描述
图表 11 添加参数nRet(该参数为返回值)
在这里插入图片描述
图表 12 方法函数名为Sum
选择local选项:
在这里插入图片描述
图表 13 选择local选项
添加函数内容:
在这里插入图片描述
图表 14添加方法函数实体
5.此时右击项目AtLAlgo,点击重新生成,则在工程文件夹下的Debug文件夹下会生成ATLAlgo.dll,即为dll形式的com组件,如下图:
在这里插入图片描述
图表 15
6.右击项目AtLAlgo——属性——生成事件——后期生成事件——添加命令行:
regsvr32 $(TargetPath)
注:为了在编译的时候注册ATLAlgo.dll
copy $(TargetPath) $(SolutionDir)TestCom
注:为了将debug文件夹下的ATLAlgo.dll拷贝到TestCom项目的TestCom文件夹下,方便TestCom项目中调用该组件。
如下图:
在这里插入图片描述
图表 16 添加命令行
7.在TestCom项目的TestComDlg.h文件中添加
#import “ATLAlgo.dll” no_namespace//1.添加ATLAlgo.dll
并在类中定义
CComPtr m_ptrAlgo1Com; //2.添加智能指针CComPtr替代接口指针IAlgo1
,从而让程序自动实现AddRef和Release,防止内存泄漏。注:释放智能指针直接赋值m_ptrAlgo1COM = NULL
如下图:
在这里插入图片描述
图表 17
8.添加初始化com组件的代码,如下:

在这里插入图片描述
图表 18
9.主界面添加一个Button1,并添加Button1的响应函数
void CTestComDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
long nRet = 0;
nRet = m_ptrAlgo1Com->Sum(1,2);//调用com组件中的算子Sum( )
CString str;
str.Format(_T(“1+2 = %d”),nRet);
AfxMessageBox(str);
}
运行结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreenHandBruce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值