VC++中,怎样利用多线程和回调函数,从串口调试助手中接收数据,然后在编辑框中显示出来?

MFC中,怎样利用多线程和回调函数,从串口调试助手中接收数据,然后在编辑框中显示出来?我想编一个基于对话框的程序comsendrecv.exe,与串口调试助手之间进行通信... MFC中,怎样利用多线程和回调函数,从串口调试助手中接收数据,然后在编辑框中显示出来?

我想编一个基于对话框的程序comsendrecv.exe,与串口调试助手之间进行通信(利用VSPE),

串口调试助手中已经能接收我从comsendrecv.exe中发送的数据了,现在我想在comsendrecv.exe中接收到串口调试助手中发过来的数据,我已经写好了一个串口类SerialPort,请问我还要在该类和对话框类中添加什么,是怎么样一个流程,跪求大神帮忙啊~~~~~~~~~~~~
展开
 我来答
百度网友349d18b
2012-11-29 · TA获得超过444个赞
知道小有建树答主
回答量:571
采纳率:50%
帮助的人:372万
展开全部
头文件中
static UINT thdWork(LPVOID lParam);

主程序中
运行标志 = TRUE;

m_pThd = AfxBeginThread(thdWork,this);
需要工作线程结束时 运行标志 = FALSE;

工作线程
UINT CMYCLASS::thdWork(LPVOID lParam)
{
CMYCLASS *pThis = (CMYCLASS*)lParam; //要使用成员变量必须明确使用pThis->变量名

while(运行标志)
{
if(SerialPort收到数据)

{
//这里不能调用GDI绘图代码,只能向控件发消息,不过控件变量的SetWindowText之类的方法实际上是向控件的HWND发消息,所以是可以用的.

pThis->m_lst.AddString(收到的字符串);

//或者使用其他方式通知主线程,由主线程显示

}
Sleep(1); //如果接收代码不会阻塞这里必须睡眠一下,不然CPU100%

}

return 0;

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式