最近在写个DCOM的程序,关于proxy/stub部分一直有点搞不清楚,请高手指点一下1. 进程内组件(DLL形式)可以将proxy/stub部分合并在内部,这一点可以理解,
   但如果是进程外组件的话,是不是proxy/stub部分就只能独立出来了,而不能和EXE合并在一起了?
   刚才在CSDN上搜索了一下,有一种回答是
   》》 如果接口没有用到自定义数据结构就不需要存根\代理。ole自带
   不是很明白,谁能解释一下   按照自己的理解,进程外组件的话proxy/stub应该是必须的,这样客户端使用的时候就可以通过导入proxy/stub这个代理DLL获得相关的接口信息
   如果没有的话,客户端又从哪儿得到相关的接口信息呢?2. 第二个问题是关于DCOM的,假设三个部件是 client.exe(客户端)   servi.exe(服务器端)  和  serviPS.dll(Proxy/Stub)
   如果在二台机器上配置的话,为什么在客户端也同样要具有servi.exe呢?   
   我觉得客户端只要有serviPS.dll不是应该就够了吗?

解决方案 »

  1.   

    只要使用了自定义接口,无论参数是不是OLE兼容的,都必须代理存根
      

  2.   

    一般最好带上PS等,然后注册,免得以后自己又增加了自定义接口等2.你的server.exe是干什么的,怎么处理
      

  3.   

    哦~,有点明白了,如果自定义数据结构指的是自定义接口的话
    那我创建的COM组件就是自定义接口类型的。
    看来proxy/stub肯定是必须的了。
    第一个问题明白了。servi.exe就是一个提供COM组件的服务。
    我看的是《COM技术内幕》,里面要求在客户端和服务器端都要执行servi.exe,
    这一点想不通。
      

  4.   

    仔细看了下《COM技术内幕》,发现是自己搞错了,
    在客户端和服务器端都要进行组件注册,
    但实际的代码只要在服务器端运行就OK了。