客户程序创建了组建对象之后,它通过接口指针调用组件对象的成员函数。但实际上,接口指针所指的是本进程中的代理对象(proxy),客户调用的是代理对象的成员函数,由代理对象通过跨进程的调用方法(LPC/RPC)与对象进程中的存根代码(stub)通信,存根代码再调用组件对象成员函数。函数返回的顺序刚好相反,由组件对象,经过存根代码和代理对象,最后返回到客户程序。在这个交互过程中,客户仍然在调用同一进程内的组件对象,而组件对象也被同一进程内的客户调用,从客户和组件对象两个角度来看丝毫感觉不到进程的边界,所有跨进程的操作完全由代理对象和存根代码包揽了。

本文介绍了组件对象如何通过代理对象实现跨进程调用的过程。客户程序通过接口指针调用组件对象的成员函数,实际上是在调用代理对象,后者通过远程过程调用等机制与目标进程中的存根代码通信,最终完成调用。

被折叠的 条评论
为什么被折叠?



