什么时候才亟需用到代理/存根? 好像没有这个dll,com组件也可以被创建啊
什么时候才需要用到代理/存根? 好像没有这个dll,com组件也可以被创建啊?
如题,我建立一个atl的工程,接受所有的默认选项,于是建立了一个易于dll的com组件。我增加了一个atl简单对象叫做my。
ide为我生成了两个工程,一个是com组件本身,一个是PS工程(代理/存根)。我删掉了这个PS‘工程。
然后我建立一个命令行工程,在main.cpp里面#import我的atl工程生成的tlb,创建my的com对象,调用其函数,没问题,一切OK。
那我的问题来了----这里看起来我的调用过程没有依赖任何代理/存根这个工程生成的东西(因为我已经删除了这个工程)。
那么
(1) 这个PS工程的存在的意义到底是什么
(2) 什么情况下,我必须依赖代理/存根才能完成某些事情呢? 是跨机器的dcom还是什么?
我感觉本机调用com dll的工程,好像根本就用不上所有的代理和存根。
------解决思路----------------------
我是说如果注册了,同时你程序又用的import方式,那么就不需要PS了
但是有很多情况,程序不会用import方式,那么就通过ps来做
如题,我建立一个atl的工程,接受所有的默认选项,于是建立了一个易于dll的com组件。我增加了一个atl简单对象叫做my。
ide为我生成了两个工程,一个是com组件本身,一个是PS工程(代理/存根)。我删掉了这个PS‘工程。
然后我建立一个命令行工程,在main.cpp里面#import我的atl工程生成的tlb,创建my的com对象,调用其函数,没问题,一切OK。
那我的问题来了----这里看起来我的调用过程没有依赖任何代理/存根这个工程生成的东西(因为我已经删除了这个工程)。
那么
(1) 这个PS工程的存在的意义到底是什么
(2) 什么情况下,我必须依赖代理/存根才能完成某些事情呢? 是跨机器的dcom还是什么?
我感觉本机调用com dll的工程,好像根本就用不上所有的代理和存根。
------解决思路----------------------
我是说如果注册了,同时你程序又用的import方式,那么就不需要PS了
但是有很多情况,程序不会用import方式,那么就通过ps来做