一、元数据

  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

COM组件与.NET技术对比相关推荐

  1. 可视化拖拽组件库一些技术要点原理分析(三)

    本文是可视化拖拽系列的第三篇,之前的两篇文章一共对 17 个功能点的技术原理进行了分析: 编辑器 自定义组件 拖拽 删除组件.调整图层层级 放大缩小 撤消.重做 组件属性设置 吸附 预览.保存代码 绑 ...

  2. 可视化拖拽组件库一些技术要点原理分析(二)

    本文是对<可视化拖拽组件库一些技术要点原理分析>[1]的补充.上一篇文章主要讲解了以下几个功能点: 1.编辑器2.自定义组件3.拖拽4.删除组件.调整图层层级5.放大缩小6.撤消.重做7. ...

  3. 开源架构Fabric、FISCO BCOS(以下简称“BCOS”)、CITA 技术对比

    转自 https://www.coingogo.com/news/41300 联盟链技术哪家强?开源架构Fabric.FISCO BCOS(以下简称"BCOS").CITA 技术对 ...

  4. Telesat、OneWeb及SpaceX三个全球宽带低轨卫星星座系统的技术对比

    编者按:本文来自微信公众号"卫星与网络"(ID:satnetdy),作者Inigo del Portilloa,*, Bruce G. Cameronb, Edward F. Cr ...

  5. Linux网络报文捕获/抓包技术对比:napi、libpcap、afpacket、PF_RING、PACKET_MMAP、DPDK、XDP(eXpress Data Path)

    Table of Contents 1.传统linux网络协议栈流程和性能分析 协议栈的主要问题 针对单个数据包级别的资源分配和释放 流量的串行访问 从驱动到用户态的数据拷贝 内核到用户空间的上下文切 ...

  6. 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(上)

    去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(上) > 价值定位 > 技术层次架构 > 服务质量(QoS) > 去中心化 > ...

  7. 结构光、双目、ToF——三种3D技术对比

    本文虽然命名为对比文档,但是对比意义不是特别强烈的内容仍不在少数--如三种3D技术的误差等部分--换言之,本文旨在通过对比的形式对三种3D技术的特点和特性进行总结.资料主要来自于网络,部分相关参考文献 ...

  8. 蓝牙与UWB的技术对比

    一.蓝牙 自1995年蓝牙技术诞生经过多次技术变迁,直至蓝牙5.1协议的推出后,蓝牙定位开始在大众视野中引发众多关注.利用AOA.AOD算法大幅提升蓝牙在室内定位空间的可用性,细数蓝牙技术优势,主要存 ...

  9. 5G与WiFi6空口技术对比

    一.两种无线通信 1.移动通信 移动通信从90年代GSM开始,到2G.3G.4G以及5G,是三大运营商在城市中布了一个大家都可以共享的无线网络. 到2018年,移动通信网已经有80亿以上用户,而每年新 ...

最新文章

  1. Android AudioPolicyService和AudioPolicyManager
  2. Windows环境 安装dlib cv2(python) 总结
  3. VS无法读取项目文件?
  4. guava中 graphs 六
  5. C++最新使用开源openssl实现输入是文件,输出是文件的AES加解密的代码
  6. hdu3652(数位dp)
  7. Acitivity创建与配置
  8. 根据输入网络服务名称取得端口号
  9. iostream stdlib fstream io.h 头文件的作用
  10. 从零开始学习python编程-从零开始的Python学习 -- 简单的练习题
  11. python绘制密度图
  12. 【动态规划】最大子段和
  13. 3个极品在线PDF转换成WORD服务网站,比软件给力!
  14. 静态页面模板,比较不错的网站,效果比较多,html代码可以直接下载即可
  15. 蓝牙耳机排名前十:618性价比超高的真无线蓝牙耳机推荐!
  16. 阿里巴巴2011公开赛1004 Level up HDU 3954 线段树
  17. 【微信小游戏】CocosCreator做小游戏 — 字符串编码转换(UTF-8和GBK互转)
  18. [Thoughts]敏捷方法大全
  19. 目标竞赛省队,寒假如何备考生物竞赛联赛?
  20. 2020 必须收藏的vscode主题【清爽的前端配置 vue】

热门文章

  1. Linux运维必备的40个命令总结(值得收藏)
  2. 【转】译文:.net 程序员易犯的7个通病
  3. ip访问php $_files空,PHP中表单没有问题但$_FILES为空怎么办?
  4. python车牌识别逆光怎么办代码_这摄像头除了能逆光识别车牌,还会跟人打招呼?...
  5. mysql无法本地连接,本地连接腾讯云Mysql失败问题
  6. azkaban 与 java任务_azkaban任务报错java.lang.RuntimeException: The root scratch dir: /tmp/hive...
  7. Java GUI 基础知识
  8. code craft_以Craft.io为先—关于我们行业的实践职业道路的系列
  9. 面了三次字节,他的一些感悟
  10. 梯度下降法和随机梯度下降法