crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Долгое завершение процесса c необычным кодом
bikineev
  опции профиля:
сообщение 18.11.2011, 6:42
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 18.11.2011
Пользователь №: 3009

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте, новичок в Qt. Пользуюсь Qt Creator. возникает проблема. почему при закрытии главного окна приложения (на крестик) процесс еще висит некоторое время (2-7с) в системе и потом заершается? Creator в то время говорит "завершился с кодом -1073741819"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 18.11.2011, 6:48
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


-1073741819==0xFFFFFFFFC0000005

ловить отладчиком место проишествия
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bikineev
  опции профиля:
сообщение 18.11.2011, 18:45
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 18.11.2011
Пользователь №: 3009

Спасибо сказали: 0 раз(а)




Репутация:   0  


А. Не сказал, что имею windows. вообщем если запускать отладчик, то он по завершении скажет, что процесс получил сигнал SIGSEGV(segmentation fault). а вот почему - не знаю. Хочу узнать еще, почему после создания объекта типа QWidget создается еще три потока? А после show() еще три? Есть предположение, что segfault из-за того, что не все потоки процесса завершились. Но ведь (по крайней мере в линукс) при завершении процесса завершаются и все потоки. Совсем я запутался.

а, и еще. по умолчанию вирт. метод closeEvent выглядит так
void QWidget::closeEvent(QCloseEvent *e)
{
e->accept();
}
Будет ли костылем переопределить его просто
void QWidget::closeEvent(QCloseEvent *e)
{
exit(0);
}
?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bikineev
  опции профиля:
сообщение 18.11.2011, 20:35
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 18.11.2011
Пользователь №: 3009

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо, проблему решил. в главном виджете в деструкторе был прописан delete для дочернего виджета. если доч. виджет не создавался и закрывал приложение - то и зависало. Но все-таки не понятен вопрос с потоками :huh:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 12.12.2024, 7:21