COM Interop入门

本文介绍了如何在C#中使用COM Interop来调用COM组件,包括使用tlbimp生成Interop Assembly,C#代码中调用COM类或接口,以及编译时的引用步骤。通过实例解析了COM组件的CoClass和Interface,并展示了生成的Interop Assembly的元数据结构。
摘要由CSDN通过智能技术生成

[引子] 在C#程序员的字典中,COM Interop意味着在C#代码中,调用COM。由于COM一度拥有着广泛的使用者,所以存在着很多COM组件。当开发者们迁徙到C#之后,如何重用这些COM组件,就是COM Interop要解决的问题。

[方法] 当手捧一个COM组件后,需要分三步完成一个最简单的COM interop

  1. 使用tlbimp产生一个.net的dll模块(称为Interop Assembly)
  2. 在C#代码中使用COM里面的类(或接口)
  3. 在编译的时候,引用(reference)在第1步中生成的dll

[例子] 手捧一个COM组件,可以用oleview一探究竟

oleview h2 . dll

可以看到COM组件里面的CoClass,和Interface


图1 oleview看COM

这里我们看到CoClass Adder实现Interface IAdder, 其中有一个函数AddTwoNumber,输入参数有2,一个[in],潜台词是调用者把值传入,该函数不会(不能)修改这个变量;第二个参数是[OUT],潜台词是,调用者传参的时候不需要考虑这个参数的值,该函数会为这个变量赋值。熟悉C++的看官肯定知道,这里要指针或者引用出马了。

第1步:TlbImp

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值