站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
组件对象模型
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
'''组件对象模型''',也称组件对象模型,英文为Component Object Model,缩写COM,是[[微软]]对于[[网页服务器]]与[[客户端]]、增益集与Office系列[[软件]] 之间交互的一项软件组件技术。 自动化是指应用程序的COM化来让外部可以调用它们的功能,以及外部调用这些功能的方法。自动化的典型应用是微软的很多软件中都支持的[[宏]]。由于自动化普遍使用OLE的标准接口来实现,所以这个技术有时也称OLE自动化。 ==历史== Windows[[操作系统]]提供了三种[[应用程序]]间的通信机制:剪贴板(clipboard)、DDE与OLE。OLE原名是对象连接与嵌入(Object Linking and Embedding),OLE可说是DDE的改良版,OLE 1.0版提供复合文档(compound document)处理。但过于复杂,Brockschmidt, Kraig“Inside OLE”一书中提到,必须经过六个月的心灵混沌期,才能了解OLE是什么。因此OLE 2.0后,微软提出COM架构。所有OLE组件皆是继承COM而来,这些技术包含OLE Document和OLE Controls、Drag and Drop等。 ==概要== COM是微软自[[1993年]]便提出的组件式软件平台,用来做进程间通信(Inter-process communication, IPC)以及当作组件式软件开发的平台。COM提供跟[[编程]]语言无关的方法实现一个软件对象,因此可以在其他环境中运行。COM要求软件组件必须遵照一个共同的接口,该接口与实现无关,因此可以隐藏实现属性,并且被其他对象在不知道其内部实现的情形下正确的使用。 COM并被实现于多个平台之上,并不限于Windows操作系统之上。但还是只有Windows最常使用COM,且某些功能已被目前的[[.NET]]平台取代。 ==COM组件类型== COM 是基于组件对象方式概念来设计的,在基础中,至少要让每个组件都可以支持二个功能: *查询组件中有哪些接口 *让组件做自我生命管理,此概念的实践即为参考计数 (Reference Counting) 这二个功能即为 COM 的根:IUnknown 接口所提供的IUnknown::QueryInterface(),IUnknown::AddRef() 及 IUnknown::Release() 三个方法的由来。所有的 COM 组件都要实现IUnknown,表示每个COM[[组件]]都有相同的能力。 只由COM派生实现出来的组件,称为纯 COM 组件。 但在 Windows 持续发展时,Visual Basic 4.0 开始支持 OCX,也就是 OLE Custom Control,这让微软开始思考要如何让 COM 组件可以跨语言支持,在这样的要求下,必须要提供一个一致的接口,以及提供一组可以调用接口内方法的能力,由于纯 COM 组件只能够支持 [[C]]/[[C++]] 的直接访问,为了要达到跨语言的能力,在 COM 中必须要支持在外部调用内部方法的机能,这个机能造就了 Invoke() 方法,另外为了跨语言的支持,COM 应该要提供简单的组件访问识别方式,这也就是会有 GetIDsOfNames() 的原因,将这些方法组合起来,定义出的必要接口,称为 IDispatch 接口,所有实现此接口的,都可以支持跨语言的支持。 微软将实现此接口的组件都称为自动化 (Automation) 组件。 ==相关技术== COM曾是Windows平台下主要的软件开发平台,并且影响至其他许多相关软件技术。 ===COM+=== 主条目:微软组件服务 COM+ 是微软 Windows 2000 中,Microsoft Transaction Server 的强化实现版本,除了提供基本的组件交易支持外,还提供了松散藕合式事件 (loosely-coupled events) 与对象共用池 (object pooling) 等[[应用程序]][[服务器]]的能力,成为 Windows 2000 开始在微软平台上主要的应用程序服务器平台,目前 [[.NET]] Framework 也提供了 System.EnterpriseServices 命名空间以支持 COM+。 ===设备上下文OM=== 主条目:Distributed COM 设备上下文OM 是可以在[[网络]]上通信的COM组件,依据RPC(Remote Procedure Call)的规范来发展的,它将COM组件的能力扩及到网络上,但是因为网络安全以及[[防火墙]]的问题,让设备上下文OM无法广泛的流行。 ===.NET=== 主条目:.NET Framework .NET Framework 是新一代的Microsoft Windows应用程序开发平台。 ==禁用com组件可能导致的问题== *在线播放功能的组件被禁用,会导致在线电影等在线视频无法正常观看; *在线杀毒功能的组件被禁用,会导致在线杀毒不能使用; *在线游戏功能的组件被禁用,会导致在线游戏无法玩, *com组件禁用后的具体情况,需要根据具体的com组件功能作判断。 ==相关条目== *[[ActiveX]] *[[J2EE]] ==参考来源== *http://zh.wikipedia.org/zh-cn/%E7%BB%84%E4%BB%B6%E5%AF%B9%E8%B1%A1%E6%A8%A1%E5%9E%8B *http://baike.baidu.com/view/185316.htm [[category:面向对象|Z]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)