COM和DLL和activex 的区别

   2016-07-13 0

COM和DLL的区别:

1) dll是以函数集合的方式来调用的,是编程语言相关的,如:VC必须加上extern "C"。

而COM是以interface的方式提供给用户使用的是一种二进制的调用规范,是与编程语言无关的。

2) DLL只有DLL一种形势, 里面可任意定义函数无限制, 只能运行在本机上 ,而COM有DLL和EXE两种存在形势。

3) COM所在的DLL中必须导出四个函数:1. dllgetobjectclass, 2. dllregisterserver, 3. dllunregisterserver, 4. dllunloadnow.

Com补充:

COM解决了版本、模块化开发,所有语言使用,当然只能在WINDOWS平台上。

COM载体:DLL、EXE(不常用),OCX(用于activex控件),activex实际上是COM的一种变体,但本质上没变,当然ACTIVEX控件也能以DLL作载体。

DLL,ACTIVEX,COM,插件区别:

DLL(基于名字导入的,名字就是符号,DLL有符号表的。根据约定好的名字调用函数)

接口是按照规划定义的规则集合

简单说来呢,这好比一棵树,

COM(组件是基于接口的,根据约定好的接口对COM对象进行控制)是树根,

组件(软件的组成部分.)是树干,

控件(具有用户界面的组件)和ActiveX都是树枝,

插件(网页中用到的,flash插件,没有它浏览器不能播放flash.)就是树上引来的一只鸟。

ACTIVEX和COM的区别:

两者没有质的区别,前者主要用于客户端,后者用于服务器端。

前者可以有界面而后者决没有界面

ActiveX的作用:可轻松方便的在 Web页中插入多媒体效果、 交互式对象、以及复杂程序, ActiveX插件安装的一个前提是必须经过用户的同意及确认。

插件:指会随着IE浏览器的启动自动执行的程序

 
标签: DLL activex
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 拓端tecdat|Mac系统R语言升级后无法加载包报错 package or namespace load failed in dyn.load(file, DLLpath = DLLpath, ..
    拓端tecdat|Mac系统R语言升级后无法加载包报错
    问题重现:我需要安装R软件包stochvol,该软件包 仅适用于3.6.0版的R。因此,我安装了R(3.6.0 版本),并使用打开它 RStudio。但是现在  ,即使我成功 使用来 安装软件包,也无法加载任何库 。具体来说,我需要加载的库是stochvol  ,Rcpp和 caret
    03-08
  • 跨语言调用C#代码的新方式-DllExport 跨语言调用本质
    跨语言调用C#代码的新方式-DllExport 跨语言调
    简介上一篇文章使用C#编写一个.NET分析器文章发布以后,很多小伙伴都对最新的NativeAOT函数导出比较感兴趣,今天故写一篇短文来介绍一下如何使用它。在以前,如果有其他语言需要调用C#编写的库,那基本上只有通过各种RPC的方式(HTTP、GRPC)或者引入一层C++
    03-08
  • Delphi 调用DLL外部函数时的指针参数
    某项目需要调用设备厂家提供的DLL的函数,厂家给了一个VB的例子,有个参数是ByRef pBuffer As Single。于是在Delphi中用buffer:array of single代替:function func(buffer:array of single;count:integer):integer;far;stdcall;external 'func.dll';调用后bu
    02-09
  • QT/VS -- 调用matlab的dll文件
    QT/VS -- 调用matlab的dll文件
    Matlab生成dll等文件的步骤之前文章里有,下边写一下VS调用MATLAB生成的dll的方法。(QT调用方法一样)https://www.cnblogs.com/zzzsj/p/14630559.htmlC++部分:创建工程文件,注意:测试环境使用的是64位操作系统,因此务必在x64环境下进行以下配置。(这是
    02-09
  • Delphi 缩放图像代码 - 支持PNG透明通道(利用了Windows的windowscodecs.dll)
    Delphi 缩放图像代码 - 支持PNG透明通道(利用
    要求Delphi2007或者更高版本, 系统要求至少XP-SP2以上实际上是利用了Windows的windowscodecs.dll这个文件的功能在VCL里已经封装为TWICImage类 procedure ScalerImage(AImage: TWICImage; AWidth, AHeight: Word);varnWIF: IWICImagingFactory;nWIS: IWICBitm
    02-09
  • delphi 注册 dcc70.dll
    @echo 开始注册copy dcc70.dll %windir%\system32\regsvr32 %windir%\system32\dcc70.dll /s@echo dcc70.dll注册成功@pause   @echo 开始注册copy dcc70.dll %windir%\SysWOW64\regsvr32 %windir%\SysWOW64\dcc70.dll /s@echo dcc70.dll注册成功@pause @e
    02-09
  • Delphi 在DLL中使用DevExpress控件时出错解决办
    测试环境 DevExpress VCL 14.1.3 和XE7问题:在dll使用cxGrid控件时  如果不添加列标题 则不报错   查询无数据集显示,如果加上标题 就报错了 这段为报错部分function TcxCustomGridTableItem.CanFilter(AVisually: Boolean): Boolean;begin  Result := 
    02-09
  • delphi 调试dll
    delphi 调试dll
    这几天在调试dll遇到的问题主要是无法下断点,根据网上的搜索结果设置也无效,偶然搜索到一条方法,特记录下来以便以后使用。首先按照网上的基本设置: 设置完后发现还是不能调试!关键在于还需要重新编译需要调试的dll随意的修改一行代码,然后编译再运行就
    02-09
  • Delphi Dll
    Delphi Dll
    引 言 相信有些计算机知识的朋友都应该听说过"DLL"。尤其是那些使用过windows操作系统的人,都应该有过多次重装系统的"悲惨"经历——无论再怎样小心,没有驱动损坏,没有病毒侵扰,仍然在使用(安装)了一段时间软件后,发现windows系统越来越庞大,操作越来
    02-09
  • delphi 创建DLL文件 及其调用和注意事项
    首先创建一个DLL文件,项目自带的代码为:library ProjectPnr;{ Important note about DLL memory management: ShareMem must be thefirst unit in your library's USES clause AND your project's (selectProject-View Source) USES clause if your DLL expo
    02-09
点击排行