vs2010 用ATL创建com组件

*爱你&永不变心* 提交于 2019-12-07 11:09:52
使用vs2010创建ATL项目可以自动完成复杂的com组建编写 

用ATL生成com组件的步骤:
1,新建一个ATL项目,选择dll,其他默认参数即可
2,在类视图中,右击项目,添加一个类,在向导中填写类的名称,如,testClass。注意参考注意事项的第一条。此时看到多了一个ItestClass的条目。
3,右击ItestClass条目,添加一个方法,如add,设置参数,勾选in表示输入,勾选out和retval表示外界调用时返回的参数(ATL中的函数实际的返回值都是S_OK)
4,在解决方案资源管理器中,右击testClass.cpp,在其中补全add函数即可
参考链接:

注意事项:
一:在添加类的时候,有个ProgID,如图,这个属性实际上必填的,但是在vs2008之前这个值都是自动填上的,但是在vs2010里这个值需要手动添加,否则生成的dll文件,虽然可以在vs2010中开发的程序中调用,但是在其他程序中如PHP中则会出错(如:PHP的“unable to create object,无效语法”,或者无法注册控件等)。ProgID的值可以参考,vs2008之前的形式:projectname.classname的形式命名。


二:
实际上ProgID是其他语言指定这个类的唯一标识,所以必须指定,而且可以自由指定(详细的规则还不太了解),如在上图界面中指定ProgID为test1,则在php中要用$com = new COM("test1")的形式引用

三:注意接口函数中的类型与不同C++语言的不同

一些TIPS:
com中支持递归

支持自定义struct等数据类型
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!