例如,我用VC2012的工程向导新建一个ATL的工程名字叫my,那么VC会同时给我生成一个叫做myPS的工程。请问: 这个工程到底是干什么用的? 可以没有他么? 删掉的话会有什么影响呢? 什么时候这个myPS工程是必须存在的?

解决方案 »

  1.   

    proxy and stub,做com组件中转等
    可以再工程向导中选择合入组件
      

  2.   


    这个proxy and stub如果不存在的话,我的客户段程序也能调用com组件么? proxy and stub是给网络部署用的吗,我想知道如果我的com组件在本机注册,本机客户端程序来调用,那么还有没有必要存在PS呢?
      

  3.   


    这个proxy and stub如果不存在的话,我的客户段程序也能调用com组件么? proxy and stub是给网络部署用的吗,我想知道如果我的com组件在本机注册,本机客户端程序来调用,那么还有没有必要存在PS呢?
    进程外的需要。加载到进程中的组件不需要代理存根。合并代理存根在向导中设置。
      

  4.   

    你在建立工程的时候不选择代理与存根(proxy and stub)就行了。这个代理的作用是在不同的进程之间传递接口指针用的。举个例子:你在A客户端使用了ABC这个com组件,但是你又想在B客户端再次引用你在A客户端得到的接口指针。那么就需要代理访问,除此之外。不需要这个选项。
      

  5.   

    只要有列集的需要,PS工程就是必须的,不过这个代理存根的好处是代码无需自己维护。
    什么情况下需要列集呢?进程外组件需要,进程内组件在跨线程调用时,STA套间线程也需要,但MTA套间线程不需要,同一个线程中调用组件是不需要的。
    如果没有别的理由,最好默认保留这个工程,以备不时之需。