为什么COM是基与接口来通信的,这样有什么好处?客户应用程序调用一个DLL中的类,实际上它只是跟这个类的接口通信,并没有真正跟类通信,那接口和具体的实现这个接口的类是如何通信的?谢谢!!!!!!!
解决方案 »
- 关于mfc vs2010的程序发布,,问题
- 关于MFC实现键盘捕获的问题
- sokcs5代理问题。。
- _MBCS的VC6.0工程调用函数参数是UNICODE编码的DLL的问题
- 我在写出一个DLL的时候遇到的问题
- 我就用vc++6.0,请问安装MSDN2003要全安装了吗?其实大家平时能用到的是那部分呢?还是只安装里面的个MSDN文档就够了呢。
- 求救:哪有VC++ 教学录象下载?
- vc处理图像
- /************* 200分,在深圳哪还有程序员大本营99卖?或在哪可以下载?***************/
- 请教SMTP认证程序
- 请教软件兼容性问题
- 有人知道关于DirectShow编程呀???
看看 <COM 本质论>
COM也不是这么简单的, 不是我三两句话可以说清楚的,.其实,我了解的也不是很多
class CA : public IX, IY, IZ
{
...
};你如果拥有IX* pIX, 可以通过pIX->QueryInterface( riid, ppv ) 查询IY, IZ等,QueryInterface内部实质就是将ppv指向内存中不同的表头。而迟后联编则决定了实现。具体过程:客户初始化COM库,调用CoCreateInstance,COM库调用DllGetClassObject得到class factory, COM库创建class factory 对象,COM库通过class factory对象 的CreateInstance创建组件,并返回客户请求的接口。
以上过程,可以使客户不必看见组件,只需要接口的声明就可以了,这样通过接口将客户和组件实现解耦--->>>>>COM的归宿点!
可以找msdn中的例子,自己做一下修改,慢慢的就会熟悉了.
接口、类和导出函数到底是什么关系?
通过接口调用函数时,实质上调用的就是实现类(子类)中的函数,因为接口类是纯虚类,它的真正实现是在子类中实现的。