设为主页 | 加入收藏 | 联系我们
您当前的位置:首页 > 公司档案
CC++面试题:如何理解COM对象和接口
时间:2018-09-08 17:52:33  来源:本站  作者:

  一个对象实现一个接口,意思就是该对象使用代码实现了接口的每个方法并且为这些函数通向COM库提供了COM的二进制指针。然后COM使这些函数运行在请求了一个指向该接口的任何客户端。COM在接口的定义和实现上有根本的差别。接口实际上是由一组定义了用法的相互联系的函数原型组成,只是它不能够被实现。这些函数原型就相当于C++中含有纯虚拟函数的基类。一个接口定义制定了接口的成员函数、调用方法、返回类型、它们的参数的类型和数量,以及这些函数要干什么。但是这里并没有与接口实现相关的东西。接口的实现就是程序员在一个接口定义上提供的执行相关动作的代码。客户调用完全是决定于接口的定义。接口实现的一个实例,实际上就是一个指向一组方法的指针,即是指指向一个接口的函数表,该函数表引用了该接口所有方法的实现。每个接口,是一个固定的一组方法的集合,在运行时通过globally unique interface identifier (IID) 来定位。这里,IID是com支持的globally unique identifier (GUID)的特殊的实例。这样做就不会产生单一系统上相同名字、接口的多个版本的COM之间的冲突了。一个COM接口与C++类是不一样的。一个COM接口不是一个对象,它只是简单地关联一组函数,是客户和程序之间通信的二进制标准。只要它提供了指向借口方法的指针,这个对象就可以用任何语言来实现。COM接口是强类型的每个接口有它自己的借口标识符。另外不能够用老版本的接口标识符定义新的版本,接口的IID定义的接口合同是明确、唯一的。继承在COM里并不意味着代码的重用。因为接口没有实现关联,接口继承并意味着代码继承。意思仅仅是,一个接口同一个合同关联,就像C++的纯虚拟基类的创建和修改一样,可以添加方法或者更进一步的加强方法的使用。在COM里没有选择性继承。如果一个接口由另一个接口继承的话,它就包含了另一个接口定义的所有的方法。管理实现一个COM对象的IUnknown:ueryInterface方法有三个主要规则:


来顶一下
近回首页
返回首页
上一篇新闻:GC 2017:《极品飞车20:复仇》新预告 宝马18新款车亮相
下一篇新闻:国宝档案》 20150508 丝路故事——宝马西来
现在评论本文
[!--temp.news_pl--]
热门排行榜
谁会电玩森林舞会破解方法 9486
太仓无人律所24小时“不打烊” 9447
上海安亭国际汽车城迎来“宝马 9429
手把手教你 微信订单系统GPRS打 9391
18款宝马530最高优惠宝马新车最 9304
安徽恒冠冠瑞科技有限公司 车驰 9203
1211灭火器使用方法及 注意事项 9193
林依晨平安夜出嫁 1辆宝马5辆奔 9155
龙建股份:乘风破浪推进省外布局 9150
在线订单退改咋就这么难(新媒观察 9087
热门图文
热评新闻
・中建二局装饰公司开展国际档案日系列宣传活
・狂欢1212!宝马会线必发bbin平台
・国网交流公司强化特高压环水保与档案管理
・黔西警方打掉一电玩赌博窝点
・宝马5系列轿车多少钱谢谢了大神帮忙啊
・奔驰宝马大众丰田林志三菱雪铁龙本田我在电
・大板发电公司廉洁档案筑牢廉洁“防火墙
・1211灭火器使用方法及 注意事项
・奔驰宝马电玩城-热门经典街机捕鱼游戏大厅
・广州地铁集团公司举办专兼职档案人员培训
关于我们 | 服务与支持 | 人才招聘 | 联系方式 | 网站地图 | 免责声明
Copyright © 2016-2019 Myshadu Corp. Ltd. All Rights Reserved
网站备案:皖ICP备06014805号宝马娱乐平台提供CDN内容加速服务 版权所有 宝马娱乐平台