COM порты и многопоточность

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
AiLEX
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 18.09.2005 (Вс) 11:44
Откуда: Котлас

COM порты и многопоточность

Сообщение AiLEX » 31.05.2006 (Ср) 17:38

Создаю поток через CreateThread. В функции, для которой создается поток, идет чтение данных из COM порта через ReadFile. Оригинальность проблемы в том, что если запустить прогу через VB6, то она работает отлично, а если запустить уже откомпеллированый EXE, то появляется ошибка с отправкой отчета (Кажется, после выполнение функции ReadFile). Если вместо чтения COM порта в поток вставить что-нибудь другое, к примеру x=x+1, то EXE работает. Еще можно, конечно, использовать таймер, только ReadFile не возвращает управление программе, пока буфер порта не заполнится до указанного количества байтов...
Не подскажите как решить траблу? Может есть еще какие-нибудь способы, кроме MSComm? Заранее спасибо.

З.Ы. Поиск смотрел. Видел только по отдельности: работа с COM, работа с потоками.
Упала вилка на пол и как начала валяться...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 31.05.2006 (Ср) 17:41

А я все практикую лечение травами...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2006 (Ср) 17:45

В дополнение к сказанному, можно лишь отметить, что достаточно будет запустить ReadFile в асинхронном режиме и ожидать её Waiter'ом.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

AiLEX
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 18.09.2005 (Вс) 11:44
Откуда: Котлас

Сообщение AiLEX » 01.06.2006 (Чт) 13:54

А что такое асинхронный режим? Впервые слышу... и как тогда ReadFile в нем запустить?
Упала вилка на пол и как начала валяться...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.06.2006 (Чт) 14:10

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 101

    TopList