Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt4] незавершение процесса


Автор: kapbepucm 24.7.2008, 14:53
Код
#include <QApplication>

int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  return app.exec();
}
Должен ли процесс завершить своё выполнение сразу после запуска?

Автор: SABROG 24.7.2008, 14:58
Цитата(kapbepucm @ 24.7.2008,  14:53)
Код
#include <QApplication>

int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  return app.exec();
}
Должен ли процесс завершить своё выполнение сразу после запуска?

А что его держит, если окон нет ?

Автор: Torsten 24.7.2008, 16:19
Я встречался с глюками, где консольные приложения не завершались (т.е. управление не возращалось в консоль), но это были не Qt приложения. У меня это было при использовании некоторых библиотек.

Автор: kapbepucm 25.7.2008, 10:20
Цитата(SABROG @  24.7.2008,  14:58 Найти цитируемый пост)
А что его держит, если окон нет ?
А есть способ определить что держит процесс? (WindowsXP Pro, Qt4.4.0., MinGW)

Автор: DSan 26.7.2008, 17:46
Цитата

Должен ли процесс завершить своё выполнение сразу после запуска?

Как показала практика, ответ - нет.

Смотрим документацию:
Цитата

int QApplication::exec ()   [static]
Enters the main event loop and waits until exit() is called or the main widget is destroyed, and returns the value that was set to exit() (which is 0 if exit() is called via quit()).

Видимо, event loop таки запускается, несмотря на отсутствие виджетов, и, собственно, ждет свой exit().

Автор: kapbepucm 31.7.2008, 11:24
Цитата(DSan @  26.7.2008,  17:46 Найти цитируемый пост)
ждет свой exit()
Что-то самостоятельно не получается... Помогите в этих строках послать exit() процессу. smile 

Автор: just_geek 31.7.2008, 11:38
qApp::quit();

Автор: kapbepucm 31.7.2008, 15:33
в смысле висит процесс 
Код
#include <QApplication>
int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  app.quit();
  return app.exec();
}


Добавлено через 1 минуту и 42 секунды
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)