Q:什么是com?
A:com是指组件对象模型,是关于如何创建组件和如何通过组件建构应用程序的一个规范。
Q:什么是“客户”?
A: 对于一个应用程序或者组件,如果他使用了其他组件,那么我们称这个应用程序或者组件为“客户”。“客户”通过其他接口与组件连接。对于用户来说,一个组件就是一个接口集。用户只能通过接口才能和组件打交道。
Q:什么是接口?
A:对于com来说,接口是一个包含函数指针数组的内存结构。每一个数组元素包含的是一个由组件所实现的函数的地址。一个com组件可以提供多个接口(称之为“接口集”),而每个接口则包含了一系列函数。每一个接口都有一个唯一的接口标示符(IID)。
Q:定义接口和实现接口分开的动机是什么?
A:是把对象内部的工作细节(相对于客户而言)都隐藏起来,这样在客户代码不需要重新编译的条件下,实现接口类的内部的数据成员数目和顺序都可以改变。
Q:COM接口层次上的“多层继承”和实现层次上的“多层继承”的概况?
A:COM 是禁止多层接口继承的,一个原因是多层继承会使接口在二进制层次上无法保持“编译器无关性”。而在实现层次上,多层继承是存在的。
Q:类型库(type library)的用途?
A:类型库(符号化的idl)是一个二进制文件,他保存了能够识别COM接口的其他语言所映射的接口定义。从而使其他语言能够使用这些组件的接口。
Q:IUnknown接口中QueryInterface, AddRef, Release函数的作用是?
A:QueryInterface用来决定组件是否支持某个特定的接口。AddRef和Release用来控制接口的生命周期。若某个接口的vtbl的前3个函数不是这三个函数,那么这个接口不是一个com接口。
Q:“得知两个接口指针是不是指向同一对象的唯一方法是查询这两个接口的IUknown,然后比较结果?” 这句话不明白 p。49 《COM 技术内幕》
A:这个IUknown应该是指指向组件的指针。在QueryInterface中确保它一定指向组建对象地址的开始处。
Q:什么是CLSID?
A: 除了用GUID 来表示接口以外,还可以用GUID来标示唯一的组件。叫做CLSID。
Q:在com中经常看到某个对象同时使用-〉和.操作符同时使用的情况,why?
A:c++中存在对操作符号的重载,所以可以重载-〉号,但是好像’.'号是不能重载的(有待考察) !
A:什么是代理、残根DLL?
Q:一个代理就是同另一个组件行为相同的组件,代理必须是DLL形式的。因为它必须访问客户进程的地址空间以便对传给接口函数的参数进行调整。残根DLL对返回给客户的参数进行调整以及对客户传递来的参数进行反调整。
A:什么是双重接口、调度接口?
Q:IDispatch::Invoke函数所实现的函数集被称作一个调度接口。双重接口也是一种调度接口,它使得可以通过invoke调用的函数也能够通过vtbl访问。
-
近期文章
近期评论
- coolker 发表在《打造最快的Hash表》
- struggle 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- diys 发表在《C语言编程宝典(王大刚) 1.1 C 语言的产生与发展》
文章归档
- 2022 年十月
- 2014 年一月
- 2013 年十二月
- 2012 年十一月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十月
- 2011 年九月
- 2011 年八月
- 2011 年七月
- 2011 年六月
- 2011 年五月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年七月
- 2010 年六月
- 2010 年五月
- 2010 年四月
- 2010 年三月
- 2010 年二月
- 2010 年一月
- 2009 年十二月
- 2009 年十一月
- 2009 年十月
- 2009 年九月
- 2009 年八月
- 2009 年七月
- 2009 年六月
- 2009 年五月
- 2009 年四月
- 2009 年三月
- 2009 年二月
- 2009 年一月
- 2008 年十二月
- 2008 年十一月
- 2008 年十月
- 2008 年九月
- 2008 年八月
- 2008 年七月
- 2008 年六月
- 2008 年五月
- 2008 年四月
- 2008 年三月
- 2008 年二月
- 2008 年一月
- 2007 年十二月
- 2007 年十一月
- 2007 年十月
- 2007 年九月
- 2007 年八月
- 2007 年七月
- 2007 年六月
- 2007 年三月
- 2007 年二月
- 2007 年一月
- 2006 年十二月
- 2006 年十一月
- 2006 年十月
- 2006 年九月
- 2006 年八月
- 2006 年七月
- 2006 年六月
- 2006 年五月
- 2006 年四月
- 2006 年三月
- 2006 年二月
- 2006 年一月
- 2005 年十二月
- 2005 年十一月
分类目录
功能