Здравствуйте, гость ( Вход | Регистрация )
Tonal | Дата 1.11.2008, 13:54 |
Если Windows - сообщения консоли. и как это можно в Qt'ях сделать? Я пологал что закрытие окна, кнопкой с крестиком, обрабатывается автоматически классом QCoreApplication.Неверно полагал. Это можно отследить только WinAPI. Qt тут не помощник. просто ждать в цикле любого ввода так это проц нагрузит, как я понимаю.Ну тебе же всё равно нужно цикл сообщений крутить? Вот в нём и проверять - есть что-нибудь на стандартном вводе или нет. |
|
Litkevich Yuriy | Дата 29.10.2008, 12:48 |
Если Windows - сообщения консоли. и как это можно в Qt'ях сделать? Я пологал что закрытие окна, кнопкой с крестиком, обрабатывается автоматически классом QCoreApplication.просто ждать в цикле любого ввода так это проц нагрузит, как я понимаю.я попробывал в метод Controller::run() воткнуть удаление БД, это избавляет от ошибки, т.е. сам объект Controller , с его таймером, уничтожаются корректно. А вот с БД, возникает казус. |
|
Tonal | Дата 29.10.2008, 12:42 |
Если Linux - обрабатывать системные сигналы. Если Windows - сообщения консоли. Ну или можно всю обработку пустить отдельным потоком, а в консоле, в главном потоке, просто ждать в цикле любого ввода - который и будет обозначать окончание. |
|
Litkevich Yuriy | Дата 29.10.2008, 12:28 |
делаю консольную программу main.cpp
В классе Controller, устанавливается соединение с БД (Controller::setDB("DB", "USER", "PASSWORD")) и запускается таймер (Controller::run()), по ка по таймеру в консоль пишется счетчик, просто для видимости работы. в pro-файле присутствуют такие строчки: QT += sql QT -= gui Проблема: При попытке завершить программу, либо закрытием окна консоли, либо <Ctrl>+<C> выскакивает ошибка типа: "Память не может быть прочитана, нарушение прав доступа". Что нужно сделать чтоб этой ошибки небыло, и как корректно завершать работу консольного приложения. Деструктор класса, как я предпологаю, не вызывается. А внем я удаляю соединение. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.3.2024, 22:52 |