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

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

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

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

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

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

Сообщений: 5877


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


Просмотр профиля 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

Сообщений: 5877


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


Просмотр профиля 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.025 секунд. Запросов: 19.