Название: Как корректно обработать закрытие консоли Отправлено: xokc от Июнь 13, 2013, 17:50 Qt 5.0, Windwows 8. Имею консольное приложение вида:
Код Обнаружил, что если закрыть окно консоли через крестик в правом верхнем углу, то деструктор MyApplication не вызывается. Можно ли с использованием Qt "отловить" факт закрытия консольного окна? Название: Re: Как корректно обработать закрытие консоли Отправлено: alex312 от Июнь 13, 2013, 19:12 попробуй BOOL CtrlHandler( DWORD fdwCtrlType ) (http://msdn.microsoft.com/en-us/library/windows/desktop/ms685049%28v=vs.85%29.aspx)
Название: Re: Как корректно обработать закрытие консоли Отправлено: OS2 от Июнь 13, 2013, 22:58 Это в Windows, а в Linux как?
Название: Re: Как корректно обработать закрытие консоли Отправлено: alex312 от Июнь 13, 2013, 23:07 Это в Windows, а в Linux как? http://www.thegeekstuff.com/2012/03/catch-signals-sample-c-code/Название: Re: Как корректно обработать закрытие консоли Отправлено: xokc от Июнь 14, 2013, 09:48 попробуй BOOL CtrlHandler( DWORD fdwCtrlType ) (http://msdn.microsoft.com/en-us/library/windows/desktop/ms685049%28v=vs.85%29.aspx) Это пробовал. Частично работает. В том смысле, что "поучаствовать" в процессе завершения получается (удается вызвать свой метод), но всё равно отменить закрытие окна и закрыться "штатно" с вызовом деструктора MyApplication не получается - после отработки моего метода приложение всё равно умирает не совсем штатным образом.Название: Re: Как корректно обработать закрытие консоли Отправлено: Fregloin от Июнь 14, 2013, 10:00 повесить обратотчик на atExit()?
Название: Re: Как корректно обработать закрытие консоли Отправлено: xokc от Июнь 14, 2013, 12:45 Закрытие консольного окна в Windows нажатием на красный крестик не приводит к вызову atExit().
Название: Re: Как корректно обработать закрытие консоли Отправлено: lit-uriy от Июнь 15, 2013, 15:50 >в процессе завершения получается (удается вызвать свой метод)
если он выполняется в полной мере (без прерывания), то придётся в нём всё разруливать Название: Re: Как корректно обработать закрытие консоли Отправлено: xokc от Июнь 20, 2013, 12:12 если он выполняется в полной мере (без прерывания), то придётся в нём всё разруливать Так сейчас и делаю. Но там корявенько всё как-то выходит. |