![]() |
|
|
![]()
|
|
| Diiana |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
Здравствуйте! Очень нужна помощь!Ситуация такая:
При нажатии на кнопку открывается Com порт и я записываю и читаю данные с терминала с помощью 2-х потоков void CMainDataDlg::OnBnClickedOpencom() { DCB dcb; memset (&dcb, 0, sizeof (DCB)); dcb.DCBlength = sizeof (DCB); dcb.BaudRate = CBR_9600; dcb.fParity = FALSE; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; port=CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(port==INVALID_HANDLE_VALUE) { AfxMessageBox("Не возможно открыть последовательный порт"); } else { //AfxMessageBox(" Порт открыт"); dcb.fDtrControl = DTR_CONTROL_ENABLE; dcb.fRtsControl = RTS_CONTROL_ENABLE; SetCommState (port, &dcb); dcb.fDtrControl = DTR_CONTROL_DISABLE; dcb.fRtsControl = RTS_CONTROL_ENABLE; SetCommState (port, &dcb); SetTimer(1, 100, NULL); WriteWinThread = ::AfxBeginThread(WriteDataComPort, NULL); ReadWinThread = ::AfxBeginThread(ReadDataComPort, NULL); } } Но когда port==INVALID_HANDLE_VALUE я уже не могу ни читать , ни записывать данные. Я пробовала делать CloseHandle(port);, но при повторном открытии у меня всё равно port==INVALID_HANDLE_VALUE. Я могу читать и записывать данные снова в том случае если закрою и открою заново программу. Как мне не закрыв программу избавиться от этой проблемы? |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |