|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
||||||
Завершение дочернего процесса по ошибке24.03.2013, 15:37. Показов 5129. Ответов 13
Метки нет (Все метки)
Например, я запускаю дочерний процесс 1.ехе и ожидаю его окончания:
Можно ли при этом обойтись без перехвата потоков ввода/вывода cerr? Добавлено через 6 минут (система Windows 7, среда VS 2010)
0
|
||||||
| 24.03.2013, 15:37 | |
|
Ответы с готовыми решениями:
13
Корректное завершение дочернего процесса
Создание дочернего процесса |
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 24.03.2013, 15:49 | |
|
по хендлу процесса можно определить его статус. и если он завершился, то и код его завершения тоже можно узнать. конкретную функцию к сожалению не помню.
0
|
|
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
||
| 24.03.2013, 18:05 [ТС] | ||
|
0
|
||
|
Супер-модератор
|
|
| 24.03.2013, 18:34 | |
|
SetErrorMode с ключиком SEM_FAILCRITICALERRORS заставит дочерний процесс вернуть управление родительскому. Это нужно было?
1
|
|
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 24.03.2013, 18:53 [ТС] | |
|
0
|
|
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 25.03.2013, 19:56 [ТС] | |
|
Упс...
На сколько я смог разобраться, то SetErrorMode (независимо от ключей) лишь регулирует отображе6ние модальных окон. А мне нужно, чтобы дочерний процесс "вылетал" при любой ошибке его выполнения... Вот как это сделать... я не знаю. А Вы?
0
|
|
|
Супер-модератор
|
|
| 25.03.2013, 21:13 | |
|
Можно пример кода для дочернего процесса, о котором ты говоришь, что он вешает у тебя выполнение основного процесса? Что там показывается за диалоговое окно, очень посмотреть хочется...
1
|
|
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
||||||||||||||||
| 26.03.2013, 11:45 [ТС] | ||||||||||||||||
|
Ну, наверное всё таки, я не могу закрыть модальные окна.
ПРИМЕРЫ: В Visual Studio 2010 создаю дочерний процесс:
В результате имею модальное окно отладчика Visual Studio, которое не исчезает ни при каких SetErrorMode() где бы его ни прописывал: хоть в родительском, хоть в дочернем процессе. Подумал, что причина в компиляторе VS. Проделал подобное в CodeBlocks 10.05 (mingw32-gcc) . Здесь вышеуказанный дочерний процесс не останавливался модальным окном. Но дочерний процесс другого типа:
0
|
||||||||||||||||
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 26.03.2013, 16:15 [ТС] | |
|
Странно. Почему же у меня не работает???
А не могли бы Вы дать свой код родительской проги, на которой всё "прекрасно работает"? Я вижу там отличия от моего кода.
0
|
|
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 26.03.2013, 19:33 [ТС] | |
|
Отличий, практически нет.
![]() При запуске Вашего проекта - высвечивает диалоговое окно "Error" (3) А с моим дочерним процессом высвечивает модальное окно при вводе значения 1000000000 Спасибо. Буду "колдовать" дальше, может что-нибудь придумаю.
0
|
|
|
Супер-модератор
|
|||||||
| 26.03.2013, 20:13 | |||||||
|
LVV, я-таки воспроизвел это окно... Замени в моем коде строку с SetErrorMode вот на такую:
), и окно перестанет появляться, вместо этого из дочернего процесса будет возвращаться ненулевой код ошибки:
1
|
|||||||
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 27.03.2013, 10:40 [ТС] | |
|
Изменил строку. Результат тот же. Не пойму в чем дело. Модальное окно всё равно появляется.
Может попробовать перехватить исключения с помощью Catch? Правда, я в этом еще больший ноль, чем в SetErrorMode. Добавлено через 13 часов 39 минут Здравствуйте, UI. Нашел причину "неудач". Оказывается всё дело в моей операционке. Что-то там не так настроено, или библиотек каких нибудь dll-овских недостаёт. В общем на других компах, и под Windows XP и под Windows 7 всё работает отлично. Дочерний процесс "вылетает" без всяких модальных окон. Еще раз спасибо за помощь.
0
|
|
| 27.03.2013, 10:40 | |
|
Помогаю со студенческими работами здесь
14
Создание дочернего процесса Завершение дочернего процесса Завершение родительского процесса из дочернего Завершение основной программы из дочернего потока _beginthread Правильное завершение потока при фатальной ошибке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|