ATL COM开发学习

(未完成)

ATL 简介

自从1993年Microsoft首次公布了COM技术以后,Windows平台上的开发模式发生了巨大的变化,以COM为基础的一系列软件组件化技术将Windows编程带入了组件化时代。广大开发人员在为COM带来的软件组件化趋势欢欣鼓舞的同时,对于COM开发技术的难度和烦琐的细节也感到极其的不便。COM编程一度被视为一种高不可攀的技术,令人望而却步。开发人员希望能够有一种方便快捷的COM开发工具,提高开发效率,更好地利用这项技术。
—-针对这种情况,Microsoft公司在推出COMSDK以后,为简化COM编程,提高开发效率,采取了许多方案,特别是在MFC(MicrosoftFoundationClass)中加入了对COM和OLE的支持。但是随着Internet的发展,分布式的组件技术要求COM组件能够在网络上传输,而又尽量节约宝贵的网络带宽资源。采用MFC开发的COM组件由于种种限制不能很好地满足这种需求,因此Microsoft在1995年又推出了一种全新的COM开发工具——ATL。
—-ATL是ActiveXTemplateLibrary的缩写,它是一套C++模板库。使用ATL能够快速地开发出高效、简洁的代码,同时对COM组件的开发提供最大限度的代码自动生成以及可视化支持。为了方便使用,从MicrosoftVisualC++5.0版本开始,Microsoft把ATL集成到VisualC++开发环境中。1998年9月推出的VisualStudio6.0集成了ATL3.0版本。目前,ATL已经成为Microsoft标准开发工具中的一个重要成员,日益受到C++开发人员的重视。

创建项目

VS最好以管理员权限打开,因为最后运行的时候需要执行regsvr32程序,如果VS没有权限可能会提示:

error MSB8011: Failed to register output. Please try enabling Per-user Redirection or register the component from a command prompt with elevated permissions.

如果还不行 就把链接器-常规-注册输出改为否,用命令行注册该组件。

  1. 新建 vc++ atl项目:FirstCOM
  2. 钩选 “支持COM+ 1.0“ ”支持部件注册器“,完成。
  3. 添加类
    这里写图片描述

选择 ATL , ATL简单对象,添加。
4. 简称填写:FirstClass,ProgID填写FirstCOM.math,完成。
5. 右击IFirstClass类,添加、添加方法
6. 方法名输入Add
这里写图片描述
点击下一步、完成。

到解决方案资源管理器,点开FirstCOM.idl,可以看到生成的方法:

interface IFirstClass : IDispatch{
    [id(1)] HRESULT Add([in] LONG* para1, [in] LONG* para2, [out,retval] LONG* result);
};

编辑代码

打开FirstClass.cpp,修改代码:

STDMETHODIMP CFirstClass::Add(LONG para1, LONG para2, LONG* result)
{
    // TODO: 在此添加实现代码
    *result = para1 + para2;
    return S_OK;
}

编译代码

注册组件

regsvr32   "D:\FirstCOM\Debug\FirstCOM.dll"

调用COM组件

新建MFC对话框程序,选择类向导、添加类、”类型库中的MFC类“
这里写图片描述
从注册表,选择FirstCOMLib<1.0>

参考:
http://blog.csdn.net/wangwenjing90/article/details/8772376

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猿来这样1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值