CloseHandle为什么关闭不了串口?
请教一个问题
Private Sub cmdOpen_Click()
Dim DCB As DCB
Dim CommTimeOut As COMMTIMEOUTS
Dim hSerialPort, lResult As Long
If bOpen = False Then
hSerialPort = CreateFile(ComboCOM.Text, GENERIC_READ Or GENERIC_WRITE, 0&, 0&, OPEN_EXISTING, FILE_FLAG_OVERLAPPED Or FILE_ATTRIBUTE_NORMAL, 0&)
If (hSerialPort = INVALID_HANDLE_VALUE) Then
lError = GetLastError()
'MsgBox "打开串口失败!", vbOKOnly + vbCritical, "错误"
lblState.Caption = "Error"
lResult = CloseHandle(hSerialPort)
Exit Sub
End If
'设置超时
CommTimeOut.ReadIntervalTimeout = MAXDWORD
CommTimeOut.ReadTotalTimeoutConstant = 0
CommTimeOut.ReadTotalTimeoutMultiplier = 0
CommTimeOut.WriteTotalTimeoutConstant = 0
CommTimeOut.WriteTotalTimeoutMultiplier = 0
SetCommTimeouts hSerialPort, CommTimeOut
'设置读写缓存
SetupComm hSerialPort, 4096, 1024
'对串口进行指定配置
GetCommState hSerialPort, DCB
DCB.BaudRate = CLng(ComboBaud.Text)
DCB.ByteSize = ComboDataBit.ListIndex + 4
DCB.fParity = ComboCheckBit.ListIndex
DCB.StopBits = ComboStopBit.ListIndex
bOpen = SetCommState(hSerialPort, DCB)
If (bOpen) Then
cmdOpen.Caption = "关闭串口"
lblState.Caption = "OK"
Else
CloseHandle hSerialPort
End If
Else
lResult = CloseHandle(hSerialPort)
cmdOpen.Caption = "打开串口"
lblState.Caption = ""
bOpen = False
End If
End Sub
上面是我用API函数对串口进行操作的,不过不知道为什么用CloseHandle函数关闭不了串口,哪位大侠帮忙看一下,给出原因?