Russian Qt Forum
Ноябрь 26, 2024, 10:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Завершение работы приложения (как?)  (Прочитано 6103 раз)
z11t3
Гость
« : Октябрь 23, 2009, 11:20 »

Доброе время суток.
Регистрирую колбэк процедуру деструктора приложения.
Как-бы мне вызвать метод application.~QCoreApplication(); в методе OnExit() ?
Или возможно есть иной способ "корректно" завершить работу приложения?
часть кода упущена
Код:
int main(int argc, char *argv[])
{
if (!FirstInstance())
return 0;

QCoreApplication application(argc, argv);
ChanelServer cs_wraper;
if (cs_wraper.Init(INFINITE))//подъём сервера каналов
{
cs_wraper.Run_ReturnImmediately();
cs_wraper.SubscribeOnAllTags();//годовая подписка колбэк процедуры на все периодические выпуски тэгов у сервера каналов
cs_wraper.SetOnExit(&OnExit);//терминатор
}
return application.exec();
}

void OnExit()
{
qwerty.~SQLArch();
application.~QCoreApplication();
}
Записан
BRE
Гость
« Ответ #1 : Октябрь 23, 2009, 11:45 »

Код
C++ (Qt)
void OnExit()
{
qApp->quit();
}
 
Записан
z11t3
Гость
« Ответ #2 : Октябрь 23, 2009, 12:11 »

2 BRE
У меня QCoreApplication объявлен в main()..
Вероятно я просто не понял что имелось ввиду =\
Не сработает, application вне области видимости =(
Код
C++ (Qt)
void OnExit()
{
application->quit();
}

Возможно при объявлении переменной можно расширить её область видимости?
Записан
BRE
Гость
« Ответ #3 : Октябрь 23, 2009, 12:33 »

У меня QCoreApplication объявлен в main()..
Вероятно я просто не понял что имелось ввиду =\
Почитай в assistant про qApp и
QCoreApplication * QCoreApplication::instance ()   [static]
Записан
spectre71
Гость
« Ответ #4 : Октябрь 23, 2009, 13:21 »

Как-бы мне вызвать метод application.~QCoreApplication(); в методе OnExit() ?
Или возможно есть иной способ "корректно" завершить работу приложения?
1) Нафига ~QCoreApplication()!
2) Просто закрой все окна в OnExit
Записан
SASA
Гость
« Ответ #5 : Октябрь 23, 2009, 15:05 »

Регистрирую колбэк процедуру деструктора приложения.
А это что такое Непонимающий
Записан
z11t3
Гость
« Ответ #6 : Октябрь 26, 2009, 11:23 »

2 SASA
передаю указатель на свою процедуру
Код
C++ (Qt)
cs_wraper.SetOnNewData(&OnNewData)
 
другому бинарнику(приложению), дабы он мог вызывать мою функцию по мере надобности

Видимо я туповат =) Пока не вкурил как убить приложение из метода OnExit()
Буду ещё много думать, пока разумным решением кажется пересмотр архитектуры
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #7 : Октябрь 26, 2009, 13:40 »

2 z11t3: BRE уже дал ответ на твой вопрос
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.179 секунд. Запросов: 22.