COM组件与.NET技术对比

一、元数据

  1. 在COM中所有组件信息都存储在类型库中。
  2. .NET中信息都存储在数据集中。
  3. 一些COM组件有类型库,一些却没有(如VB编的,因为C++可以用IDL——接口定义语言表述接口和方法,而VB不行)。没有的话需要用C++头文件来表述接口和方法。

二、释放对象

  1. .NET通过垃圾回收器释放对象。
  2. COM组件通过引用计数管理对象,如果引用数降为零了就释放对象。

三、接口

COM有三种接口:

  1. 定制接口:IUnknown + 自定义接口虚方法表
  2. 分派接口:IDispatch
  3. 双重接口:IUnknown + IDispatch + 自定义接口虚方法表

四、方法绑定

  1. .NET前期绑定方法:虚方法表
  2. .NET后期绑定方法:反射
  3. COM前期绑定方法:设计时通过GetIdsofNames()获取方法ID,运行时只需调用Invoke()即可。
  4. COM后期绑定方法:运行时调用GetIdsofNames()获取方法ID,再调用Invoke()。

五、数据类型

对于分派接口和双重接口,COM使用的数据类型局限于一个自动兼容的类型列表。VARIANT是许多类型(如BYTE、INT、LONG)的组合,与.NET中Object对应。

 

六、注册

.NET区分私有程序集和共享程序集。每个COM组件都进行了注册配置,是全局可用的。

 

 

   ----学习笔记,请多多指教。

 

转载于:https://www.cnblogs.com/xufzu123/archive/2010/06/18/1760529.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值