为MFC程序添加ATL简单对象

当建立一个MFC程序,之后又想把其中一个类做成com的,以便其它程序调用,那么你就可以为这个MFC程序添加一个ATL简单对象,把这个类的方法定义成ATLCOM组件的方法。这里IDE(我这里是VC2008)会提示你将为应用程序增加ATL支持。确认后,IDE会忙那么几秒钟,过后,那个为你添加ATL简单对象的的向导就出来了,你就可以顺理成章地增加对象的方法和属性了。等一切完成后,这个com对象是封在一个exe文件后的,用一个客户端来测一下。我经常用的是excel的vba,发现在引用的菜单中找不到这个组件,点击“浏览”,然后选中这个生成的exe,组件出现在了引用的列表中了。勾选后,点确定,然后在代码中编写代码,new一个组件,然后调用方法。保存,运行,告诉我说ActiveX部件不能创建对象。用VC建立一个客户端,用createDispatch创建接口的实例,返回0,后又用CLSIDFromProgID,转换完了,id是一串0。之后从注册表中搜了一下我创建的组件的名字,找不到!无法,只好按照之前创建的组件来自己写注册表文件,内容如下:

REGEDIT
HKEY_CLASSES_ROOT\CalcScript.ScriptEngine.1\CLSID = {45DA253D-8D45-49BB-B7EB-88548A25FBAA}
HKEY_CLASSES_ROOT\CLSID\{45DA253D-8D45-49BB-B7EB-88548A25FBAA} = CalcScript.ScriptEngine.1
HKEY_CLASSES_ROOT\CLSID\{45DA253D-8D45-49BB-B7EB-88548A25FBAA}\LocalServer32 = J:\CalcScript\Release\CalcScript.exe

编写完成后,双击,添加到注册表中,运行客户端,一切顺利!

结论:大部分时间IDE会帮你完成所有事情,除了一些不常见的情况,本文这种情况下,它就没有把组件添加到注册表中,需要你自己来弄。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值