使用vs2010创建ATL项目可以自动完成复杂的com组建编写
用ATL生成com组件的步骤:1,新建一个ATL项目,选择dll,其他默认参数即可2,在类视图中,右击项目,添加一个类,在向导中填写类的名称,如,testClass。注意参考注意事项的第一条。此时看到多了一个ItestClass的条目。3,右击ItestClass条目,添加一个方法,如add,设置参数,勾选in表示输入,勾选out和retval表示外界调用时返回的参数(ATL中的函数实际的返回值都是S_OK)4,在解决方案资源管理器中,右击testClass.cpp,在其中补全add函数即可参考链接:http://www.cnblogs.com/xiaokang088/archive/2011/05/16/2047376.html
注意事项:一:在添加类的时候,有个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等数据类型