1、什么是进程外组件?2、进程外组件的运行方式?3、进程外组件的生存周期?4、进程外组件的进程异常退出,接口指针无效后,再使用会有什么影响?
5、我调用一个进程外组件,那个进程手动结束后,还可以正常使用那接口指针(返回值正常,就是没效果了,不知道为什么),这种情况如何处理一下?

解决方案 »

  1.   

    应该看到6ba错误,RPC unavailable,我们都是看到这个
      

  2.   

    进程内组件是指组件与客户程序执行在同一个进程地址空间中,通常是DLL形式。 
    进程外组件独占一个进程,而不使用客户程序的进程空间。这类组件,一般按组件程序和客户程序是否位于同一台机器上,分成本地组件和远程组件两类,本地组件一般是EXE程序,而远程组件可以是DLL,也可以是EXE。
      

  3.   

    1、拥有自己的进程ID。
    2、有两种运行方式,一种可以单独直接运行,如IE,另一种不能直接运行,需要由组件调用者创建进程。
    3、生存周期不确定,可以独立于调用者,比如调用者创建了一个进程外组件如IE,调用者结束前没有执行ie.quit指令,则ie会一直运行,在调用者运行期间,组件还可以被用户手动关闭。
    4、指针无效,当然会引起错误,因此需要做容错处理。
    5、一般不会出现这种情况,如果出现了,可以在创建时HOOK到组件的进程ID,然后在此处判断该进程是否存在。