我的ATL项目(串口接收)中有一个MFC类(Cmfc)和ATL简单对象(Catl)Cmfc 中有2个方法:
  Start();   //启动监测端口
  Receive(); //接收数据Catl 中有一个方法,一个事件
  atl_start();          //方法 启动监测端口
  OnReceive(strReceive) //事件 接收数据我要实现如下:
    我在CATL中创建一个Cmfc m_mfc 实例,然后在 atl_start()方法中实现 m_mfc.Start();
   
    我想在Cmfc的Receive(); 中启动OnReceive(strReceive) 事件,但是这时必须调用
Catl m_atl实例,然后 在Receive(); 里写m_atl.OnReceive(strReceive)    问题在于上面Cmfc 和 Catl不能互相调用,只能一个类调用另外一个类,导致只能实现方法或事件中的一种。
   

解决方案 »

  1.   

    晕,COM中的事件要用到连接点,需要一个专门的接口管理事件
    看看这个demo是怎么玩的
    http://www.codeguru.com/Cpp/COM-Tech/atl/atl/article.php/c3623/
      

  2.   

    xdljf(hunter) 
    我知道实现事件需要用连接点,我用的是VC7,所以实现事件容易些我的问题在于我的事件执行是在MFC类中的Receive()里。
    (Receive() 类似OnTime()事件自动运行)
      

  3.   

    黄工,你好,对不起,首先我不能回答你的问题,我是有问题向你请教。我也碰到你这样的问题,我有个程序要和串口通信,也是要等到单片机把信息传过来后我才能通过我的接口把信息传给集成平台的网页上面。我现在的程序是MFC 的对话框程序,我不知道是在这个程序里面加接口,还是要另外写一个服务器接口程序供集成平台用(这样我怎么与已有的对话框程序通信),由于我是新手请时间紧张,请帮我提建议。有好的建议请发到我邮箱:[email protected]。(最好能给一个例程给我,半成品也可以,我真的需要你的帮助!)我的QQ号码:361577203。也可以从QQ上面指教我!