void CDagobertDlg::OnSend() { HANDLE hComm; BOOL m_bPortReady, m_bStatus;; DCB m_dcb; char cTxBuffer[50], cRxBuffer[50]; unsigned long lBytesWritten, lBytesRead; strcpy (cTxBuffer,"R0.29.0\r"); cRxBuffer[49] = '\0'; hComm = CreateFile("//./com1",GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0); if (hComm == INVALID_HANDLE_VALUE) return; m_bPortReady = GetCommState(hComm, &m_dcb); if (!m_bPortReady) return; m_dcb.BaudRate = 9600; m_dcb.ByteSize = 8; m_dcb.Parity = NOPARITY; m_dcb.StopBits = 1; m_dcb.fBinary = true; m_dcb.fDsrSensitivity = false; m_dcb.fParity = false; m_dcb.fOutX = false; m_dcb.fInX = false; m_dcb.fNull = false; m_dcb.fAbortOnError = true; m_dcb.fOutxCtsFlow = false; m_dcb.fOutxDsrFlow = false; m_dcb.fDtrControl = DTR_CONTROL_DISABLE; m_dcb.fDsrSensitivity = false; m_dcb.fRtsControl = RTS_CONTROL_DISABLE; m_dcb.fOutxCtsFlow = false; m_bPortReady = SetCommState(hComm, &m_dcb); if (m_bPortReady != 0) return; m_bStatus = WriteFile(hComm, cTxBuffer, strlen(cTxBuffer),&lBytesWritten,0); if (m_bStatus) { m_bStatus = ReadFile(hComm,cRxBuffer,sizeof(cRxBuffer)-1,&lBytesRead,0); } }