1、打开vs2010,新建ATL COM 项目,如下图:

2、勾选 【支持COM+ 1.0】和【支持部件注册器】

3、添加了一个com项目,在项目名称上点击右键,添加类,如下图:

然后打开如下窗口,选择ATL简单对象即可。

然后是如下窗口,在简称一栏中输入类名称FirstClass,其他输入框会自动填写,然后点击完成即可。如果出现提示【是否覆盖现有文件】,点击【是】即可。

4.切换到类视图(视图->类视图),选中刚才添加的接口IFirstClass,如下,然后右键单击【添加】à添加方法。

打开了添加方法向导,如下,输入方法名【Add】,在下方增加参数。
先增加两个输入参数:勾选【in】,选择参数类型LONG,输入参数名para1,点击添加。同样操作增加参数para2.
然后增加一个返回参数:勾选【retval】,选择参数类型LONG*,输入参数名result,点击添加。

点击完成即可。如果点击下一步,打开如下窗口,如果不需要填写信息,点击完成即可。

5、切换到解决方案资源管理器,打开IDL定义文件 FirstCom.idl,看到如下代码,就是定义的COM方法了。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
interface
IFirstClass : IDispatch{ [id(1)]
HRESULT
Add([in] LONG
para1, [in] LONG
para2, [out,retval] LONG*
result); }; [ uuid(77067637-4F17-4CBB-A12B-28979A8D21FB), version(1.0), custom(a817e7a1-43fa-11d0-9e44-00aa00b6770a,"{CB407CA1-C9ED-4A94-B505-91212F94FCED}") ] 6.
打开FirstClass.cpp 编辑方法逻辑如下: //
FirstClass STDMETHODIMP
CFirstClass::Add(LONG
para1, long
para2, LONG*
result) { //
TODO: 在此添加实现代码 *result
= para1 + para2; return
S_OK; } |
7、至此,完成了COM编写,编译为dll,并自动注册到系统中。下面来调用一下刚才编写的COM,打开一个WPF项目,在项目文件上右击,选择【添加引用】,打开添加引用对话框,切换到COM选项卡,发现我们编写的COM已经在这里了,点击确定即可。

如果在COM选项卡里面没有看到,请使手工注册COM DLL,打开cmd,然后用Regsvr32注册。打开WPF项目的引用文件夹,如下,刚才添加的引用已经在这里了。

8、使用WPF程序调试COM,编写代码如下:
|
1
2
3
4
5
6
7
8
9
|
public
partial
class
MainWindow : Window{ public
MainWindow() { InitializeComponent(); FirstComLib.FirstClassClass
firstClass = new
FirstComLib.FirstClassClass(); int
ret = firstClass.Add(1, 5); }} |
测试发现,ret=6,调试成功~!
本文介绍如何使用Visual Studio 2010创建COM组件,并通过一个简单的加法运算示例展示从项目建立、接口定义到方法实现及调用的全过程。
152

被折叠的 条评论
为什么被折叠?



