background image

解释一下:

1、 首先就是把 COM 封装成程序集中的元数据,也就是.net 可以使用的数据。VS2003 给

我们提供的工具是 Tlibmp.exe,当你在引用 COM 时,VS2003 就是用这个工具帮
助我们把 COM 封装成了一个.net 下可以用的元数据。也就是我们引用后,项目目录
里会生成一个 DLL 文件,而它,就是.net 可以使用的元数据。

2、 而在运行时,RCW 会为我们处理一些细节问题,然后通过 Interop 来调用,你就像使

用.net 对象一样的使用 COM。

我要说明的是:经过 Tlbimp.exe 封装后的元数据,只是在.net 项目开发时使用的,运

行时,真正的 COM 还是要在目标机器上安装注册。下面的一篇文章很有参考价值,读者可以
深入的理解一下,.net 是如何使用 COM 的。
  下面就是我们所关心的很二个问题,如何以 COM 的形式来访问.net 对象?

第 2 部份,如何让其它应用程序以传统的 COM 方法来访问.net 对象(原理)

请注意这里的措词,.net 是不能开发传统的 COM 的。因此,一些关于.net 开发 COM 以

及 ActiveX 的说明都是不完全正确的。它的本质是把.net 的对象,通过一些封装,然后暴露
给操作系统,让其实的应用程序可以像传统的 COM 方式那样来访问.net 对象,而访问该对
象的同时,因为该对象只能在.net 下生成,所以运行环境还是要.net 支持的。

先看一下 MSDN 上的一个图示。

解释一下:
1. 托管代码经编译成中间语言,想必大家都明白。而让其它应用程序也可以访问你所编译