在工作线程中打开串口,不能触发MSCOMM的oncomm事件

sclcwwl 2009-10-23 09:09:46
我使用的是mscomm控件做串口通信,在主线程之外有一个工作线程,在工作线程中往串口发送数据,再读取响应的数据。
现在有个问题是我如果在工作线程中使用SetPortOpen(TRUE)打开串口的话,主线程中的ONCOMM事件触发不了。
如果我改在主线程中SetPortOpen(TRUE)打开串口,就可以触发事件。
但是我又需要在工作线程中才打开串口,请问怎么处理?
...全文
218 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sclcwwl 2009-10-31
  • 打赏
  • 举报
回复
没有答案啊,结贴了
精锐掷矛手 2009-10-24
  • 打赏
  • 举报
回复
获得主线程的句柄,给主线程发送消息
sclcwwl 2009-10-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 oyljerry 的回复:]
AfxGetApp()取得mainframe的指针 --这个指针传递到工作线程中,然后工作线程中调用这个指针的方法来SetPortOpen打开
[/Quote]

我现在用的就是这个方法,但是发现不能触发主线程中的ONCOMM事件,所以不知道怎么办?
oyljerry 2009-10-23
  • 打赏
  • 举报
回复
AfxGetApp()取得mainframe的指针 --这个指针传递到工作线程中,然后工作线程中调用这个指针的方法来SetPortOpen打开
sclcwwl 2009-10-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feilinhe 的回复:]
工作线程中传入你的主程序的指针,再调用
[/Quote]

这个主程序的指针是哪个?怎么传呢?我是新手,不太明白。
我现在是 AfxGetApp()取得mainframe的指针访问的串口
dirdirdir3 2009-10-23
  • 打赏
  • 举报
回复
工作线程中传入你的主程序的指针,线程发消息给主线程,然后主线程打开comm口..........
feilinhe 2009-10-23
  • 打赏
  • 举报
回复
工作线程中传入你的主程序的指针,再调用

15,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧