with与它们的用途和用途的联系
目录:
COM是您在PC领域最常听到的术语之一,在本文中,我们将解释什么是COM连接以及它们的用途 。 准备好了吗 不要错过!
什么是COM,它的作用是什么?
“ 组件对象模型 ”(COM)是Microsoft在1993年引入的软件组件的二进制接口标准 。 COM用于以多种编程语言创建进程之间的通信对象。
COM是其他几种Microsoft框架和技术的基础,其中包括OLE,OLE自动化,浏览器帮助器对象,ActiveX,COM +,DCOM,Windows Shell,DirectX,UMDF和Windows运行时 。 COM的本质是一种与语言无关的实现对象的方式,即使在跨机器边界的情况下,也可以将其用于创建对象的环境之外的环境。 对于良好创建的组件,COM允许对象重用而无需了解其内部实现 ,因为它强制组件实现者提供与实现分开的定义明确的接口。
我们建议阅读我们的文章“ 如何在外接盒中安装硬盘”
通过使对象通过引用计数负责其自身的创建和销毁,可以容纳不同的语言分配语义。 对象的不同接口之间的类型转换是通过QueryInterface方法完成的 。 COM中“继承”的首选方法是创建将“调用”方法委派给其的子对象。
COM连接开发中的经典之作
COM是仅在Microsoft Windows和Apple的Core Foundation 1.3以及更高版本的插件应用程序编程接口(API)中定义和实现为标准的接口技术 。 后者仅实现整个COM接口的子集。 对于某些应用程序,至少在某种程度上,COM已被Microsoft.NET框架取代,并通过Windows Communication Foundation(WCF)支持Web服务。
但是,COM对象可以通过.NET COM互操作性与所有.NET语言一起使用 。 网络DCOM使用专有的二进制格式,而WCF鼓励使用基于XML的SOAP消息。 COM与其他组件软件接口技术非常相似,例如CORBA和Enterprise JavaBeans,尽管每种都有各自的优缺点。 与C ++不同,COM提供了一个稳定的应用程序二进制接口(ABI),该接口在编译器版本之间不会更改。
这使得COM接口对于使用不同编译器版本进行编译的客户端必须使用的面向对象的C ++库具有吸引力 。 Windows中最早的进程间通信方法之一是动态数据交换(DDE),该技术于1987年首次引入,它允许在应用程序之间的所谓“对话”中发送和接收消息。 Antony Williams参与了COM体系结构的创建,然后向Microsoft分发了两个内部文档,其中包含软件组件的概念:“对象体系结构:1988年在动态可扩展的类库中处理未知类型的安全性”和“关于继承:这意味着什么以及如何在1990年使用它”。
这为COM背后的许多想法提供了基础 。 对象链接和嵌入(OLE)是Microsoft的第一个基于对象的框架,是在DDE之上构建的,并且是专门为复合文档设计的。 它于1991年随Word for Windows和Excel一起引入,然后随Windows一起包含,从1992年的3.1版开始 。 复合文档的一个示例是Word for Windows文档中的嵌入式电子表格:在Excel中对电子表格进行更改后,它们会自动显示在Word文档中。
一点COM的历史
1991年,Microsoft引入了Visual Basic 1.0的Visual Basic(VBX)扩展 。 VBX是动态链接库(DLL)形式的打包扩展, 它允许将对象以图形方式放置在形状中,并通过属性和方法进行操作 。 这些后来被改编用于其他语言,例如Visual C ++。 1992年,当Windows版本3.1发行时,Microsoft发行了OLE 2及其基础对象模型 。 COM应用程序二进制接口(ABI)与1992年启动的MAPI ABI相同。
虽然OLE 1专注于复合文档,但COM和OLE 2旨在解决通用软件组件 。 事实证明,文本对话和Windows消息不够灵活,不足以允许健壮和可扩展的应用程序功能共享,因此将COM创建为新的基础,并将OLE更改为OLE2。 在1994年,OLE自定义控件(OCX)成为VBX控件的后继产品 。 同时, Microsoft表示OLE 2将简称为“ OLE” ,并且OLE不再是首字母缩写,而是公司所有组件技术的名称。
在1996年初,Microsoft发现了OLE自定义控件的新用途,扩展了其Web浏览器呈现内容的功能,重命名了OLE“ ActiveX ”的某些与Internet相关的部分,并逐渐将所有OLE技术重命名为ActiveX,除了复合文档技术。 在Microsoft Office中使用的。 那年下半年,DCOM被提交作为对CORBA的回应。
至此,我们结束了有关什么是COM连接及其用途的文章,请记住您可以在社交网络上共享它,以便它可以帮助更多用户。