我的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不能互相调用,只能一个类调用另外一个类,导致只能实现方法或事件中的一种。
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不能互相调用,只能一个类调用另外一个类,导致只能实现方法或事件中的一种。
看看这个demo是怎么玩的
http://www.codeguru.com/Cpp/COM-Tech/atl/atl/article.php/c3623/
我知道实现事件需要用连接点,我用的是VC7,所以实现事件容易些我的问题在于我的事件执行是在MFC类中的Receive()里。
(Receive() 类似OnTime()事件自动运行)