Russian Qt Forum

Qt => Общие вопросы => Тема начата: z11t3 от Октябрь 23, 2009, 11:20



Название: Завершение работы приложения (как?)
Отправлено: 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();
}


Название: Re: Завершение работы приложения (как?)
Отправлено: BRE от Октябрь 23, 2009, 11:45
Код
C++ (Qt)
void OnExit()
{
qApp->quit();
}
 


Название: Re: Завершение работы приложения (как?)
Отправлено: z11t3 от Октябрь 23, 2009, 12:11
2 BRE
У меня QCoreApplication объявлен в main()..
Вероятно я просто не понял что имелось ввиду =\
Не сработает, application вне области видимости =(
Код
C++ (Qt)
void OnExit()
{
application->quit();
}

Возможно при объявлении переменной можно расширить её область видимости?


Название: Re: Завершение работы приложения (как?)
Отправлено: BRE от Октябрь 23, 2009, 12:33
У меня QCoreApplication объявлен в main()..
Вероятно я просто не понял что имелось ввиду =\
Почитай в assistant про qApp и
QCoreApplication * QCoreApplication::instance ()   [static]


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


Название: Re: Завершение работы приложения (как?)
Отправлено: SASA от Октябрь 23, 2009, 15:05
Регистрирую колбэк процедуру деструктора приложения.
А это что такое ???


Название: Re: Завершение работы приложения (как?)
Отправлено: z11t3 от Октябрь 26, 2009, 11:23
2 SASA
передаю указатель на свою процедуру
Код
C++ (Qt)
cs_wraper.SetOnNewData(&OnNewData)
 
другому бинарнику(приложению), дабы он мог вызывать мою функцию по мере надобности

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


Название: Re: Завершение работы приложения (как?)
Отправлено: pastor от Октябрь 26, 2009, 13:40
2 z11t3: BRE уже дал ответ на твой вопрос