小弟我不编译ATL的Proxy/Stub工程,ATL组件也能用,为什么
我不编译ATL的Proxy/Stub工程,ATL组件也能用,为什么?
我用VC2010新建一个ATL的工程,产生两个proj,一个是组件本身,一个是PS工程。
我从解决方案视图里面删除那个名称后缀是PS的工程,只编译ATL组件的这个工程,没有问题。
我再建立一个控制台工程来调用这个组件,也没有问题。
我的疑惑是:
(1)既然我都没有编译生成proxy/stub的工程,为什么仍然可以执行调用com组件呢?
(2)什么情况下必须要这个xxxPS的dll才能运行成功,否则com组件调用会失败? 换句话说,什么情况下xxxPS.dll才是必须的?
谢谢。
------解决方案--------------------
http://baike.baidu.com/link?url=Mpf3dBNlPo5dZJgfSjKaHD2De0DzRZE4kkML4lll4C-4V2XY422_QqShDkqFRjTqRmR3dth2g2mdUDZdgr7Pm_
如果是EXE服务类型的组件,调用时就会不在同一个进程内,而各进程的内存空间是独立的
------解决方案--------------------
记得哪本书里说是可以dll可以用服务的形式注册在远程服务器上的,然后用CoCreateInstanceEx方式调用,了解下DCOM
我用VC2010新建一个ATL的工程,产生两个proj,一个是组件本身,一个是PS工程。
我从解决方案视图里面删除那个名称后缀是PS的工程,只编译ATL组件的这个工程,没有问题。
我再建立一个控制台工程来调用这个组件,也没有问题。
我的疑惑是:
(1)既然我都没有编译生成proxy/stub的工程,为什么仍然可以执行调用com组件呢?
(2)什么情况下必须要这个xxxPS的dll才能运行成功,否则com组件调用会失败? 换句话说,什么情况下xxxPS.dll才是必须的?
谢谢。
------解决方案--------------------
http://baike.baidu.com/link?url=Mpf3dBNlPo5dZJgfSjKaHD2De0DzRZE4kkML4lll4C-4V2XY422_QqShDkqFRjTqRmR3dth2g2mdUDZdgr7Pm_
如果是EXE服务类型的组件,调用时就会不在同一个进程内,而各进程的内存空间是独立的
------解决方案--------------------
记得哪本书里说是可以dll可以用服务的形式注册在远程服务器上的,然后用CoCreateInstanceEx方式调用,了解下DCOM