Получение кода завершения в обработчике ProcessExit? - PullRequest
0 голосов
/ 20 февраля 2019

Я пишу небольшое C ++ / CLI приложение, которое вызывает много библиотек.Внутри некоторых из них есть по крайней мере один exit(xyz), и я ловлю его, обрабатывая AppDomain.ProcessExit().Работает отлично.Поскольку вызов exit(...) уже выполнен, я хотел бы получить код завершения, переданный этой функции.

Моя проблема в том, что, по-видимому, код завершения недоступен до полного завершенияпроцесс и, конечно, в моем обработчике процесс не "полностью" завершен / завершен.Например, я попытался:

int ec = System::Diagnostics::Process:GetCurrentProcess()->ExitCode;

Но я получил исключение.Также кажется, что API Win32 GetExitCodeProcess() вернет мне ошибку STILL_ACTIVE ???Я надеюсь, что это значение где-то зарегистрировано / доступно?

Есть идеи?Я работаю на Win 7 и Win 10. Заранее спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Ранее я делал это с помощью командного файла.

Я создаю файл с именем runprogram.cmd (вы можете создать собственное имя при желании) и помещаю в него следующее: -

@ echo off

"programname.exe"

echo% errorlevel%

@ echo on

пауза

замените programname.exe именем вашего exe-файла.

дважды щелкните файл, чтобы запустить его.

0 голосов
/ 20 февраля 2019
System::Environment::ExitCode;

Process, AppDomain, Environment ... Я пропустил это!Я надеюсь, что мой вопрос / ответ когда-нибудь кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...