void CCOMDlg::OnCommMscomm1()
{
//接收数据-发送数据
}
10 个解决方案
#1
在OnCommMscomm1()中启用线程函数就可以了啊。
#2
那MScomm的变量要如何传递到线程函数中
#3
都没人帮我啊!自己先给自己顶一个!
#4
在建立线程时,线程函数里有一个参数,这个参数的类型好象是LPVOID,用这个参数就可以把MSCOMM变量传进去,在线程里再把这个参数转换成MSCOMM控件类型就行了(就是类型转换)。
#5
也可以建立一个MSCOMM全局变量,把MSCOMM这个控件的关联变量赋给这个全局变量,在线程里使用这个全局变量
#6
1.新建线程A,全局事件g_event
2.把mscomm父窗口的指针p传给A
3.在mscomm父窗口的OnCommMscomm1中g_event.SetEvent
4.A中等待事件g_event,等到后通过p调用mscomm读取并处理数据
2.把mscomm父窗口的指针p传给A
3.在mscomm父窗口的OnCommMscomm1中g_event.SetEvent
4.A中等待事件g_event,等到后通过p调用mscomm读取并处理数据
#7
4楼能否给出具体怎么实现 谢谢
#8
简单的线程同步问题。创建线程的开销很大,在那是创建是不现实的,你可以在初始化时创建处理线程,通过PostThreadMessage通知线程处理(内容放在wpaeam/lparam),在那个线程等这个消息处理就行,或者用信号量、事件通知都可以
#9
我这边做的比较复杂,公司的代码,串口通讯这块是封装好的类A,在类B中封装一些函数,提供发送和接受命令,将A的指针放在B中,并对A进行初始化,就是串口的打开关闭什么的。在类C中得到B的指针,提供一个可以访问的方法。这样线程就写在C中了。
#10
请问如果我只是想做个发送程序的话,是不是不用添加那个串口响应函数OnCommMscomm1()?
#1
在OnCommMscomm1()中启用线程函数就可以了啊。
#2
那MScomm的变量要如何传递到线程函数中
#3
都没人帮我啊!自己先给自己顶一个!
#4
在建立线程时,线程函数里有一个参数,这个参数的类型好象是LPVOID,用这个参数就可以把MSCOMM变量传进去,在线程里再把这个参数转换成MSCOMM控件类型就行了(就是类型转换)。
#5
也可以建立一个MSCOMM全局变量,把MSCOMM这个控件的关联变量赋给这个全局变量,在线程里使用这个全局变量
#6
1.新建线程A,全局事件g_event
2.把mscomm父窗口的指针p传给A
3.在mscomm父窗口的OnCommMscomm1中g_event.SetEvent
4.A中等待事件g_event,等到后通过p调用mscomm读取并处理数据
2.把mscomm父窗口的指针p传给A
3.在mscomm父窗口的OnCommMscomm1中g_event.SetEvent
4.A中等待事件g_event,等到后通过p调用mscomm读取并处理数据
#7
4楼能否给出具体怎么实现 谢谢
#8
简单的线程同步问题。创建线程的开销很大,在那是创建是不现实的,你可以在初始化时创建处理线程,通过PostThreadMessage通知线程处理(内容放在wpaeam/lparam),在那个线程等这个消息处理就行,或者用信号量、事件通知都可以
#9
我这边做的比较复杂,公司的代码,串口通讯这块是封装好的类A,在类B中封装一些函数,提供发送和接受命令,将A的指针放在B中,并对A进行初始化,就是串口的打开关闭什么的。在类C中得到B的指针,提供一个可以访问的方法。这样线程就写在C中了。
#10
请问如果我只是想做个发送程序的话,是不是不用添加那个串口响应函数OnCommMscomm1()?