理解COM和DLL技术
来源:互联网 发布:淘宝卖什么容易赚钱 编辑:程序博客网 时间:2024/06/06 02:58
最近由于需要做一个Visual Studio的插件,所以看了《ATL开发指南》,对COM技术有一个简单的了解,稍作记录,资励。
COM技术是
我们知道COM有跨语言优势,便于升级维护,实现进程间调用甚至分布式调用。
COM组件之间的通信是通过组件的接口来实现的,COM组件接口的实现是统一的,它采用的是虚函数表形式,表中包含了组件函数的一组指针,我们可以通过这组指针来获取我们想要通信的组件函数的内存地址。
DLL技术
一般模块化开发中,我们提供一个类库或框架,最好是提供源代码;但这往往涉及到知识产权保护和多次编译。
所以后来开发了DLL技术,DLL中导出一个需要提供给第三方使用的类,函数,数据等;以后DLL升级了,只要接口保持不变,使用者直接替换DLL文件,不用重新编译代码。由于采用动态链接,所以运行空间也能够节省。
传统的DLL方案是有缺陷的,每个编译器都会加入它自己的一些独特特性。比如使用VC++开发的,里面有异常处理代码,在其他IDE中使用这个DLL,它可能获取不了异常;
如果DLL导出类添加了成员变量,导致对象内存增加了,那么使用者直接替换DLL,会产生非法操作。
理解COM和DLL技术
对于DLL技术的缺陷,COM技术能够做的比DLL更好。
DLL是以函数集合的方式来调用的是编程语言相关的,而COM是以interface的方式提供给用户使用的是一种二进制的调用规范,是与编程语言无关的,它使用idl接口定义语言来描述自己使用类继承来实现自己的功能和方法。
DLL只有DLL一种形式,里面可任意定义函数无限制,只能运行在本机上,而COM 有DLL和EXE两种。
一般情况下
COM技术看起来挺复杂的,如果我并不想跨语言,只要DLL接口设计的好,应该也能够很好的完成模块化的开发任务吧。
- 理解COM和DLL技术
- OLE、ActiveX 、COM和普通DLL的简单理解
- 关于Dll、Com组件、托管dll和非托管dll的理解
- 关于Dll、Com组件、托管dll和非托管dll的理解
- dll和com
- Lib、DLL、COM、.Net的理解
- COM学习笔记:COM和DLL
- com和dll的区别
- com和dll的区别
- DLL和COM的发展过程
- COM和Dll的主要区别
- 调用dll和com的区别
- COM和Dll的主要区别
- com组件和一般dll的区别
- COM与DLL的区别和联系
- COM和DLL的一些区别
- com组件和一般dll的区别
- com组件和一般dll的区别
- layerui代码控制tab选项卡,添加,关闭
- 诸多设计模式中,最为常见的三种设计模式-单例模式,代理模式,工厂模式
- Android网络数据解析之Jackson
- WINCE4.2+sqlce1.0程序移植到WINCE5.0中的过程记录
- Ajax请求session超时解决办法
- 理解COM和DLL技术
- 一次简单的代码封装经历
- leetcode 14. Longest Common Prefix
- keepalived+haproxy 安装 PXC高可用
- Vue之使用脚手架搭建Vue工程
- centos6.3下安装loadrunner 11的负载端LoadGenerator实战
- centos7service命令不可用
- 联发科编程大赛_第二题情报破译
- 移动运维技术之安全管理模型