cljwin 发表于 2013-5-19 14:56:45

串口通信,句柄无效是什么原因

写了一个串口通信软件。底层用的是MFC,顶层用的是Qt的构架。
问题:
Qt创建了两个UI界面A、B。在A的函数里设置端口号及波特率,串口可以正常打开,并且可以收发数据。但B的函数里收发数据时出现句柄无效(hComm==INVALID_HANDLE_VALUE)。
同样在B里的函数里设置端口号及波特率,串口可以正常打开,并且可以收发数据。但A的函数里收发数据时出现句柄无效(hComm==INVALID_HANDLE_VALUE)。      
什么原因啊。我对语言不是很了解。该怎么解决,

cljwin 发表于 2013-5-22 10:36:23

{:call:}救命啊,

qinxg 发表于 2013-5-22 10:52:59

串口只能打开一次. 在打开之前判断一下是否无效, 无效再打开.

NemoGu 发表于 2013-5-22 15:33:43

Windows APl對串口操作使用獨占方式

cljwin 发表于 2013-5-23 09:34:52

qinxg 发表于 2013-5-22 10:52 static/image/common/back.gif
串口只能打开一次. 在打开之前判断一下是否无效, 无效再打开.

打开串口前判断了,无效就打开串口。发送数据前也是判断的,但串口明明是打开状态,却句柄无效。

cljwin 发表于 2013-5-23 09:38:32

NemoGu 发表于 2013-5-22 15:33 static/image/common/back.gif
Windows APl對串口操作使用獨占方式

我开API介绍:。如果在当前的应用程序调用 CreateFile()时,另一个应用程序已经打开了串口,该函数就会返回错误代码,原因是两个应用程序不能共享一个端口。然而,同一个应用程序的多个线程可以共享由 CreateFile()返回的端口句柄,并且根据安全性属性设置,该句柄可以被打开端口的应用程序的子程序所继承。但是该怎么去继承啊。
页: [1]
查看完整版本: 串口通信,句柄无效是什么原因