zoukankan      html  css  js  c++  java
  • COM 组件 V.S. .NET

    一、元数据



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


    二、释放对象



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


    三、接口

    COM有三种接口:



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


    四、方法绑定



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


    五、数据类型

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

    六、注册

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

  • 相关阅读:
    Java日志体系(1) —— 那些年那些事,那些日志的历史
    直播工作原理
    【PAT乙级 】1003. 我要通过!
    [牛客网刷题]被3整除
    [牛客网刷题]牛牛找工作
    Mybatis的简单分析
    数位DP
    正则表达式
    能量球
    从此,我们相伴,不离不弃
  • 原文地址:https://www.cnblogs.com/lijunjie/p/3884598.html
Copyright © 2011-2022 走看看