问一个关于COM中proxy/stub的问题,请高手指点

kalltt 2009-04-01 11:50:33
最近在写个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不是应该就够了吗?

...全文
214 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kalltt 2009-04-01
  • 打赏
  • 举报
回复
哦~,有点明白了,如果自定义数据结构指的是自定义接口的话
那我创建的COM组件就是自定义接口类型的。
看来proxy/stub肯定是必须的了。
第一个问题明白了。

servi.exe就是一个提供COM组件的服务。
我看的是《COM技术内幕》,里面要求在客户端和服务器端都要执行servi.exe,
这一点想不通。


oyljerry 2009-04-01
  • 打赏
  • 举报
回复
一般最好带上PS等,然后注册,免得以后自己又增加了自定义接口等

2.你的server.exe是干什么的,怎么处理
jameshooo 2009-04-01
  • 打赏
  • 举报
回复
只要使用了自定义接口,无论参数是不是OLE兼容的,都必须代理存根
kalltt 2009-04-01
  • 打赏
  • 举报
回复
仔细看了下《COM技术内幕》,发现是自己搞错了,
在客户端和服务器端都要进行组件注册,
但实际的代码只要在服务器端运行就OK了。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧