1 新建一个ATL项目
2 设置ATL项目属性
3 等待创建完成, 出现两个项目
4 添加ATL简单对象
设置短名称为Temp 其他的会自动填充
ProgID 设置为 项目名+“.”+短名称 (ComTest.Temp )
ProgID 是之后 vbs 及其他语言 调用组件所需要提供的名称
接口 ITemp 为之后配置 idl 所需要找到的接口名
完成后会在ComTest 下自动添加 Temp.h 以及 Temp.cpp以及生成一个CTemp类
5 在CTemp类中创建自己的方法
在Temp.h添加函数声明
在Temp.cpp中实现此函数
__result 必须为指针用来进行返回
return 默认为 S_OK表示执行成功
6 打开ComTest.idl
idl 与 odl的区别
- idl (接口描述语言), odl (对象描述语言)
- idl是ATL中的, odl是ActiveX中的, ODL是Microsoft对IDL的扩展
使用IDL时,必须在库声明之外声明将生成C ++源文件的接口。对于ODL,此步骤不是必需的。
除了一些小的语言差异外,IDL和ODL在语法和组织方面都相同。
在interface ITemp : IDispatch里面写入
[in] 表示 输入[out] 表示输出 [retval] 表示作为返回值给外界, retval 必须只能有一个 而且必须跟在out 后面
7 生成
在Release x86下重新生成解决方案
先把此COM组件注册到系统