![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| GipsySh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 6.2.2007 Репутация: нет Всего: нет |
Даже неудобно спрашивать, но тем не менее... В каком случае (при нажатии какой клавиши/сочетания клавиш) в консольное приложение посылается сообщение WM_QUIT?
У меня есть консольное приложение, в котором среди прочего создается таймер. Соответсвенно, пробую организовать вот такой цикл:
Закрыть приложение получается только либо закрыв консоль (крестиком в заголовке), либо нажав Ctrl+C... Но не понимаю, приходит ли при этом сообщение WM_QUIT. Попробовала поставить бряк на case WM_QUIT и отладиться - но в итоге при попытке закрыть приложение указанными двумя способами получаю exception в дебаге |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 8 Всего: 154 |
||||
|
||||
| GipsySh |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 6.2.2007 Репутация: нет Всего: нет |
Lazin, спасибо, что указали на функцию SetConsoleCtrlHandler...
Но у меня теперь не получается ее совместить с таймером... Добавила функцию для обработки сигналов:
А потом пишу в main'е:
В результате когда пытаешься закрыть консольное приложение, нажав на крестик, все это творение валится (вылетает окно с кнопками "End Now" и "Cancel") Никто не сталкивался с аналогичной проблемой? Это сообщение отредактировал(а) GipsySh - 17.2.2010, 23:34 |
||||
|
|||||
| GipsySh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 6.2.2007 Репутация: нет Всего: нет |
Как вариант еще попробовала использовать atexit, но SetConsoleCtrlHandler, если я правильно понимаю, предоставляет возможность обработать больше ситуаций, поэтому хотелось бы все-таки разобраться с ним... :(
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 8 Всего: 154 |
могу посоветовать запустить под отладчиком, установить брэйкпоинт в ф-ю CtrlHandler, закрыть консоль и посмотреть что будет дальше =) Добавлено через 2 минуты и 57 секунд мне кажется, нужно не только файл закрывать, но и убивать таймер - KillTimer(NULL, iTimerID); |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |