最近开始学习com,看了vcbase杨老师的文章,试着做了几个小com程序,单独运行都没有问题。现在想把手头一个工程做成com,工程中有一个部分是硬件驱动程序,一个部分是驱动数据处理程序,我都想做成com,但是现在出现问题,就是两个com之间如何进行通信?
如果按照vcbase的文章,在应用程序中用CSink方式来获取com的fire_XXX通知的方法,在com中实现是否行的通呢?或是有别的好的办法?因为我驱动的com要在收到数据后立即通知驱动数据处理的com,请问用何种方式好呢?

解决方案 »

  1.   

    合成一个COM不就完事了?
    硬件COM直接调用驱动COM的接口就可以吧,有必要用连接点么?连接点是相互通信用的。
      

  2.   

    客户端无法取得服务端的信息,这时候需要建立连接点。比如你的COM被第三方使用,你根本不知道第三方是个啥东西。你这两个COM都是你自己的,愿意怎么通信就怎么通信。
      

  3.   

    感谢a_rockboy的回复,我的两个com间确实需要互相通信,做成2个com也是希望能好扩展,因为上层com会有很多个,都调用一个驱动com。这种情况应该使用连接点吧?能帮我讲讲具体怎么用吗?非常感谢!
      

  4.   

    又看了看资料,还是一头雾水,可能是我太着急了。实现连接点,必须实现IDispatch接口吗?需要高人帮忙啊
      

  5.   

    1.实现连接点,在ATL中是有向导的
    2.实现接收器,一般都是实现IDispatch的,也有从IUnkonw派生的,不过不多
      

  6.   

    谢谢楼上的回复,但是两个com之间通信到底用何种方式好呢,最好能给小弟几行代码说明下,被这个问题折磨的头疼啊,谢谢了
      

  7.   

    你说的很模糊,两个COM组件之间通信
    套接字,共享内存什么的,都可以
      

  8.   

    我想用类似于事件通知或者回调函数的方式来通信,因为驱动com中收到的数据要尽快的送给数据处理com,不知道有没有这方面类似的例子能让我学习下啊