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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Падение внешней программы при использовании QProcess  (Прочитано 5620 раз)
Madgeniy
Гость
« : Март 12, 2011, 01:03 »

Доброго времени суток. Вопрос заключается в следующем. Есть, например, программа которая вызывается с помощью QProcess не деаттаченная. Она падает. Падает и все приложение. Как можно этот момент отловить?
Записан
alexman
Гость
« Ответ #1 : Март 12, 2011, 11:37 »

Программа, что запускаете из QProcess, имеет исходники? Если да то можно просто ее запустить отдельно для отладки.
Записан
Madgeniy
Гость
« Ответ #2 : Апрель 06, 2011, 21:47 »

Нет, не имеет. У меня куча таких программ. На вход поступают одинаковые для всех программ данные. На некотором наборе некоторые программы падают. А мне нужно это отловить. Возможно на уровне WIN API можно?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Апрель 06, 2011, 22:19 »

Код нужен.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
voral
Гость
« Ответ #4 : Апрель 06, 2011, 23:44 »

Нет, не имеет. У меня куча таких программ. На вход поступают одинаковые для всех программ данные. На некотором наборе некоторые программы падают. А мне нужно это отловить. Возможно на уровне WIN API можно?

1. Прежде чем запускать процесс выведите в консоль те параметры которые передаете. (Да и саму команду). Попробуйте в консоли запустить руками ту вторую программу используя выведенные в консоль команду и параметры.

2. Вы вывод запускаемого процесса както обрабатываете или просто пускаете и все?
Записан
Madgeniy
Гость
« Ответ #5 : Апрель 07, 2011, 12:48 »

Я жму картинку внешним компрессором. На некоторых картинках он падает. Например, я вызываю кодер jpeg2000. Для одной картинки он срабатывает корректно при числе уровней разрешения (параметр такой есть) одном, при таком же числе уровней разрешения для другой картинки падает, когда пытается обратно ее в исходный формат переконвертировать. Вообщем неважно. Мне нужно узнать, можно ли такое падение отловить в принципе, а не лезть в исходники самих программ.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Апрель 07, 2011, 13:03 »

int QProcess::exitCode () const
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Madgeniy
Гость
« Ответ #7 : Апрель 07, 2011, 15:41 »

Тогда вопрос такой.
при QProcess.start() ошибка вылетает. приложение ждет QProcess.finished(), но не достигает его по причине вывалившейся ошибки. Как быть в этом случае? Просто по таймеру проверять?
Записан
mutineer
Гость
« Ответ #8 : Апрель 07, 2011, 15:44 »

Попробуй ловить error(QProcess::ProcessError error)
Записан
kdm
Гость
« Ответ #9 : Апрель 07, 2011, 15:44 »

Может void  stateChanged ( QProcess::ProcessState newState )?
EDIT: Пока писал, появился новый ответ.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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