COM FAQ

原创 2006年05月24日 09:30:00
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访问。

相关文章推荐

scrapy使用【转载自http://www.hulufei.com/tag/scrapy#scrapy-faq】

【转载自http://www.hulufei.com/tag/scrapy#scrapy-faq】 Some Experiences Of Using Scrapy Posted@20...
  • lyzgkd
  • lyzgkd
  • 2012年08月28日 15:30
  • 396

Wrodpress安装、使用及FAQ功能定制

  • 2014年10月12日 11:41
  • 1.22MB
  • 下载

android bsp faq

  • 2014年02月16日 03:27
  • 1.44MB
  • 下载

[FAQ]jackson解决:null到"", 空值处理为空串

1.一个比较头疼的问题: jackson + spring 支持rest接口,输出的JSON 对于null的字符串是invoiceTitle: null,但是接受方希望返回的是invoiceTitle...

R-FAQ文档 135分钟学会R

  • 2013年11月03日 10:19
  • 370KB
  • 下载

autocad_pdf_install_faq_chs.pdf )

  • 2013年10月21日 12:01
  • 636KB
  • 下载

Cortex-M3 FAQ 常见问题解答2012

Q1: Cortex-M3是什么?       它是ARM在重视MCU市场后,设计的一个用于32位单片机的处理器内核。Cortex-M3一经推出就得到整个业界的追捧,其先进的架构和很多突破性的特性更...

业务框架应用FAQ

  • 2015年03月26日 08:47
  • 1005KB
  • 下载

报表应用-报表FAQ-多余空白页

  • 2015年10月09日 10:43
  • 462KB
  • 下载

FAQ 常见问题 -【Dr.Elephant系列文章-8】

这篇文章列举了一些常见的问题,以及一些建议来帮助我们解决实际遇到的问题。 1. Dr.Elephant部署在哪里? Dr.Elephant需要部署在一个有Hadoop平台环境的机器上。Er.Ele...
  • qsc0624
  • qsc0624
  • 2016年05月09日 15:51
  • 1015
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:COM FAQ
举报原因:
原因补充:

(最多只允许输入30个字)