0

CreateProcess() を使用して別のプロセスを開始するアプリケーションを作成しています。親プロセスでは、GetExitCodeProcess() を使用して、プロセスがアクティブかどうかを確認します。

ここで、CreateProcess() は成功しました (負でない値を返しました) が、GetExitCodeProcess() は 128 を返しました (待機する子プロセスはありません)。子プロセスが開始された痕跡は見られません (通常、いくつかのデバッグ)。断続的に発生します。

子プロセスに実際に何が起こったのか考えていますか?. 詳細情報はどこから入手できますか (システム/アプリケーション イベント ログで?)。

私を案内してください。

ありがとう、ナガ

4

1 に答える 1

0

コメントしてくれてありがとう。

問題の同じ症状と解決策を提供する次の MSDN 記事を見つけました。


Cmd.exe、Perl.exe、またはその他のコンソール モード アプリケーションは、CreateProcess() または CreateProcessAsUser() API を使用してサービスによって起動されると、適切に初期化できず、途中で終了する場合があります。呼び出しプロセスは、起動されたコンソール モード アプリケーションが途中で終了したことを知る方法がありません。

場合によっては、失敗したプロセスに対して GetExitCode() を呼び出すと、次の終了コードが示されます。 128L ERROR_WAIT_NO_CHILDREN - 待機する子プロセスがありません。


http://support.microsoft.com/kb/156484 http://support.microsoft.com/kb/142676/EN-US

http://support.microsoft.com/kb/175687/EN-US

ありがとう、ナガ

于 2011-09-09T08:00:59.460 に答える