本人想做一个程序,通过COM通信来在两个进程间进行通信。如进程A、进程B,一个COM组件C首先运行A、B,A、B都分别创建了C中的一个接口,然后A、B就通过它们的接口进行通信,请各位讨论一下,这样的方法可行吗?或者有没有其它更好的方法呢(基于COM,这A、B就可以运行在不同的机器上)?

解决方案 »

  1.   

    可以吗? 不是吧!C应该是A、B分别创建的彼此独立的进程,就算在同一台机器上都不行更别说在不同的机器上了。
      

  2.   

    楼上的两位都理解错了我的问题。
    A、B两个都是独立的MFC(exe)程序,而C是一个COM组件。
    本人是想通过组件C来实现在A、B之间实现通信。
      

  3.   

    这不就是DCOM吗?不过你好像创建的不是同一个东西哦,你创建的是C的2个不同实例,所以,他们不能直接通信。按照你的要求,建议你把A或者B做成COM,然后通过DCOM调用。
      

  4.   

    harry
    照你我方法是可以的,但我有另外一些的特殊要求。
    C是做完后不再改变的,
    而A、B可能会随时改变的,或者是第三方的人开发的。
      

  5.   

    C可以做成普通的dll,在A/B中调用(C中仅仅封装处理逻辑)
      

  6.   

    进程通信的方式有多种,邮槽、命名管道或是socket,把这些实现了,然后封装成一个com组件,不就可以了吗?
      

  7.   

    sanweiying()
    你说的有道理,也可行!不过,是否还有其它更简单的办法呢?
      

  8.   

    这根本不是一个"办法",这是标准做法!DCOM允许位置透明性,为进程间通讯提供了先天的支持,你还想怎么样?
      

  9.   

    是的DCOM是可以实现了两个进程的通信,但只是两个进程之间。
    请看清楚,我现在说的是通过COM来实现两个都不是COM的应用程序之间的通信。
      

  10.   

    你用了com 组件,exe就是com客户或者容器了。进程间通讯用com我觉得速度慢了点,因为有存根/代理的转换(要不自己写存根/代理,不过太麻烦了)
    我写过用com跨进程的程序,指针调用慢了至少5倍。