- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 COM对象和接口
对象与组件技术
YWZ 2006
Slide 1
l COM对象的概念与特征
l 接口的定义与标识
l 接口的内存模型
l 接口的特点
l IUknown接口
l 引用计数
l 接口查询
l 字典组件举例
主要内容
对象与组件技术
YWZ 2006
Slide 2
l COM组件
Ø 组件:可独立发布的二进制组件
Ø 在Windows平台上表现为DLL或者EXE
l COM对象
Ø 通过COM接口提供服务
Ø 符合OO中对象的基本概念
l COM接口
Ø 客户与对象之间的协议,对象实现COM接口,客户使用 COM接口从而访问对象
COM基础——三个概念
对象与组件技术
YWZ 2006
Slide 3
l COM组件
Ø 组件的类型:进程内组件(DLL)、 进程外组件(EXE)
Ø 为方便起见,只讨论Windows平台上DLL类型的组件
l COM对象
Ø 如何标识一个对象?对象以什么形式存在?客户如何创建 对象?
Ø 对象如何暴露接口?一个或是多个?
l COM接口
Ø 要求:跨编译器、跨语言、跨平台
需要思考的一些问题
对象与组件技术
YWZ 2006
Slide 4
COM对象是客户程序与组件程序进行交互的实体。
COM对象包含属性和方法(或者状态和操作):
• 属性反映对象的存在,也是区别于其他对象的要素;
• 方法是对象提供给外界的接口。
能够提供服务(通过COM接口)
对象的实现由组件完全包装起来
2.1 COM对象
Ø
Ø
Ø
Ø
对象与组件技术 Slide 5
l 概念
YWZ 2006
l COM组件的位置透明性
Ø 客户程序并不直接访问COM对象,而是通过一个唯一的 全局标识符进行对象的创建和初始化工作。
Ø 可选的标识符方案:
• 字符串形式:可读性好,名字冲突的可能性大
• 定长位数的整数:如何保证唯一性?(管理组织 / 大随机数)
l GUID
Ø 是COM规范采取的方案
Ø 是一个128位的随机数
Ø 不绝对保证唯一性,但发生冲突的可能性非常小
Ø 例如: { 54BF6567-1007-11D1-B0AA-444553540000 }
2.1.1 COM对象的标识—CLSID
对象与组件技术
YWZ 2006
Slide 6
l 保证随机性的考虑
Ø 空间上:网络中的计算机通常取网卡的地址(唯一的)
Ø 时间上:同一机器在不同时候产生的标识符总不相同
l GUID的C/C++结构描述 typedef struct _GUID
{
DWORD
WORD
WORD
BYTE
} GUID ;
Data1;
Data2; Data3; Data4[8];
GUID续
对象与组件技术
YWZ 2006
Slide 7
Ø COM库提供的API函数
. HRESULT CoCreateGuid ( GUID * pguid) ;
l GUID 与 CLSID
Ø CLSID是标识COM对象的GUID
Ø 二者在结构上完全一致
l 产生GUID的工具
Ø Visual C++提供的两个工具: . UUIDGen.exe :命令行程序 . GUIDGen.exe :基于对话框的程序
GUID (续)
对象与组件技术
YWZ 2006
Slide 8
l 层次差异
Ø COM对象建立在二进制级的基础上
Ø C++对象建立在源代码级的基础上
l 封装特性
Ø COM对象的数据完全封装在对象内部,不能直接访问
Ø C++对象的公有数据成员是可以访问的
l 可重用性
Ø COM对象的重用表现为包容和聚合
Ø C++对象的重用表现为继承与组合
l 多态性的表现形式不同
Ø COM对象的多态需要通过接口来表现
2.1.2 COM对象与C++对象的比较
对象与组件技术
YWZ 2006
Slide 9
l 基本内容
Ø 接口定义与标识
Ø 用C++定义接口
Ø IDL
Ø 接口的内存模型
Ø 接口的特点
2.2 COM接口
对象与组件技术
YWZ 2006
Slide 10
l 定义
Ø 是一个函数集,以二进制的形式给出了从一方到另一方的 调用规范;函数的地址封装在一个数据结构中。
Ø 这个数据结构称为“接口函数表”
Ø 在C++中称为“虚函数表”,简称vtable
Ø 对于一个接口来说,它的vtable是确定的,即: 接口成员函数的个数是不变的;
其先后顺序也是不变的
v 客户程序通过一个指向vtable的指针来调用接口成员函数
2.2.2 接口定义和标识
对象与组件技术
YWZ 20
您可能关注的文档
- 走进心理学与心理健康课件.pptx
- 骨盆及髋关节X片的划线课件.pptx
- 第一节微分中值定理ppt课件.pptx
- 道德与法治《我是班级值日生》优选ppt课件部编版.pptx
- 四年级上册信息技术7制作个人小名片粤教版课件.pptx
- 青少年心理健康知识-主题班会ppt课件.pptx
- 不得不提的“壮胆方”-温胆汤课件.pptx
- 下肢静脉曲张护理查房ppt文档课件.pptx
- 初一地理地球和地球仪课件.pptx
- 大气抽象商务企业通用PPT模板课件.pptx
- 书面表达之建议信(讲义)-中考英语一轮复习(含答案).pdf
- 中考历史复习小众题型类:填空题、改错题、判断题(70题).pdf
- 2024年吉林省县乡教师选调考试《教育学》真题汇编带解析必背【基础题】.pdf
- 2025年中考语文备考之《朝花夕拾》名著导读及考题.pdf
- 小说标题的含义和作用(模拟突破)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 阅读理解之应用文(练习)-中考英语一轮复习(含答案).pdf
- 小说情节作用(模拟突破)-2025年中考语文考点突破之小说阅读(原卷版).pdf
- 小说段落作用(模拟突破)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 小说段落作用(试题专练)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 2025年上海市16区初三语文一模试题汇编之现代文阅读二(记叙文)学生版.pdf
文档评论(0)