COM接口结构COM组件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
COM接口结构COM组件

组件技术介绍 程序设计方法的发展 功能分解法 —— 计算任务 结构化程序设计 —— 以数据为中心 面向对象程序设计 —— 以对象为中心 组件程序设计 —— 以组件为中心 软件环境的变化 面向对象技术 组件技术 COM是什么 组件对象模型(Component Object Model, COM) COM是由Microsoft提出的组件标准,它不仅定义了组件之间进行交互的标准,并且也提供了组件程序运行所需的环境 COM是什么 COM标准包括规范和实现两大部分: 规范部分定义了组件与组件之间的通信的机制,这些规范不依赖于任何特定的语言和操作系统,只要按照该规范,任何语言都可以使用 COM标准的实现部分是COM库, COM库为COM规范的具体实现提供了一些核心服务。 COM是什么 COM不是一种编程语言,它是使组件(software component)像对象一样彼此交互的一种二进制标准。COM并没有指定任何特殊的编程语言。COM能够使用任何支持COM对象的二进制设计语言。它是便于COM标准的可编程性的一种编程模型 COM不是DLL,也不是函数集 不仅仅是一套规范,也确实需要一些具体的实现。 COM简史 开发COM的目的是为了使应用程序更易于定制、更灵活。最初的目标是提供对对象链接及嵌入的支持。对象链接及嵌入(OLE)的第一个版本使用动态数据交换(DDE)作为客户和组件之间的通信方式。 DDE—Windows消息传递,慢,不灵活,编程困难 COM简史 OLE的第二个版本—COM,COM成了OLE的新的基础。OLE是开发出来的第一个COM系统。 OLE对象链接和嵌入(object linking and embedding) 用户与OLE以3种方式交互: OLE文档 OLE自动化 OLE控件(OLE控件是可以嵌入应用中的可重用部件) COM特性 语言无关性:采用一种二进制代码级的标准,而不是源代码级的标准。为跨语言合作开发提供了统一标准 进程透明特性:进程内对象和远程外对象 可重用性:包容方式和聚合方式 COM接口 COM接口的标识—IID 是GUID的一种用法 IUnknown接口 所有的COM接口都从IUnknown派生 C++定义: class IUnknown { public: virtual HRESULT__stdcall QueryInterface( const IID iid, void **ppv) = 0 ; virtual ULONG __stdcall AddRef() = 0; virtual ULONG __stdcall Release() = 0; }; 接口查询 目的:按照COM规范,一个COM对象可以实现多个接口。从一个接口到另一个接口的访问途径 函数QueryInterface(iid, ppv) 用法: 初始得到了一个接口指针之后,调用它的QueryInterface函数,获得另一个接口指针 返回值说明了对象对接口的支持情况 S_OK、E_NOINTERFACE、E_UNEXPECTED QueryInterface实现 与对象的定义有关 IUnknown必须是个静态接口指针,其他接口指针可以是动态的 QueryInterface在返回接口之前,必须调用新接口的AddRef函数 COM对象的接口原则 IUnknown接口一致性 接口对称性:查询自身总应该成功 接口自反性: 接口传递性: 接口查询时间无关性: 引用计数 目的:是为了控制对象的生命周期 多个客户可以独立地控制对象的生存 引用计数反映了被客户引用的个数 引用计数是个整数,从0开始 两个操作:增一和减一 当引用计数为0时,表示没有客户在使用对象或者接口——删除 引用计数用法 客户要引用接口时——增一操作 调用IUnknown::AddRef() 客户用完接口时——减一操作 调用IUnknown::Release() 当对象的引用计数为0时,释放 当组件中所有对象的引用计数为0时,卸载 AddRef和Release的返回值不可靠 COM接口结构 COM组件、对象和接口图示 组件应用程序 * * 单任务 多任务 文字界面 图形界面 单线程 多线程 平台相关 跨平台 单机(本地) 网络(分布式) 单一语言 多种语言 用一种新的思路来看待问题 10多年的发展证明了OO符合软件的规律 对象技术的发展需要开发工具和开发语言的支持 三大特性:封装性、继承性、多态性 组件技术适合于现代的软件环境 软件更新快、规模大、强调协作等 组件的概念 组件的可独立发布性要求“接口与实现分离” 组件infrastructure,组件体系 COM、CORBA

文档评论(0)

18273502 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档