|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.07.2017, 13:55 | #1 |
Новичок
Джуниор
Регистрация: 12.07.2017
Сообщений: 2
|
Программа зависает занимая com-порт
Люди добрые, помогите умным советом. А то дельфист из меня...
Иногда, программа виснет на вот этом куске кода. Процесс при этом отказывается убиваться в Диспетчере задач. Подозреваю, что уходит в бесконечный цикл при попытке CloseHandle. Если цикл убрать (оставив CloseHandle), то com-порт остается занятым не пуская к себе другие приложения. Что тут можно сделать? Код:
Последний раз редактировалось Аватар; 12.07.2017 в 14:37. |
12.07.2017, 14:15 | #2 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 735
|
- ну вот тут пробел, наверное, надо убрать или опять опечатка?
А почему CloseHandle - файл ведь нужно закрыть. А, ну да, и правда CloseHandle(), только не в цикле, а однократно нужно вызывать. Попробуете без цикла и отпишитесь потом помогло или нет. Хорошо?
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Последний раз редактировалось Cuprum5; 12.07.2017 в 14:38. |
12.07.2017, 14:45 | #3 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Cuprum5
CloseFile - не существует вместо неё следует использовать CloseHandle. voronbird Лишнее. Запрещёно дважды освобождать хэндел. Цитата:
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 12.07.2017 в 14:49. |
|
12.07.2017, 14:46 | #4 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
ну наверное надо узнать(понять) почему это ОС не желает закрывать порт.
Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
||
12.07.2017, 15:26 | #5 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 735
|
- вот это еще, наверное, неправильно написано. Нужно завести массив из 2-ух элементов и сюда 2-ым параметром передать указатель на него.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
12.07.2017, 15:31 | #6 |
Новичок
Джуниор
Регистрация: 12.07.2017
Сообщений: 2
|
Не, эта часть точно правильная. Она прекрасно отрабатывает в 99 случаях из 100. А потом чего-то с com-портом случается. Спасибо за подсказки. Ушел проверять.
|
12.07.2017, 17:12 | #7 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 594
|
Просто дайте возможность винде обработать ваш запрос на "грохнуть"
Да-да, тривиальным добавлением не менее тривиального Код:
Неизвестному, пишущему господину Крапоткину - вы бы хоть представились Последний раз редактировалось kropotkina-alice; 13.07.2017 в 00:36. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
зависает программа | Gdasar | C++ Builder | 2 | 15.09.2013 18:02 |
Программа зависает | SKS | Общие вопросы Delphi | 6 | 24.02.2012 07:30 |
Зависает программа | Symba | Общие вопросы Delphi | 10 | 24.06.2011 11:48 |
Программа зависает | Anubys | Помощь студентам | 0 | 20.05.2011 23:40 |
Зависает программа | DimOn4Ik | Общие вопросы Delphi | 4 | 29.05.2010 21:05 |