• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CreateProcessでアプリが終了しない)

CreateProcessでアプリが終了しない

このQ&Aのポイント
  • ちょっとした変換ツールを作ろうと思い、ダイアログベースのMFCアプリケーションを作成しました。
  • OKボタンが押された時にCreateProcess()で子プロセスを起動して、終了したら結果表示して親プロセスも終了する様にしようと思ったのですが、結果表示までは正常に実行されるのですが、親プロセスが終了しません。
  • 恐らくCreateProcess()に渡す引数が悪いのだと思うのですが、どなたかわかる方がいらしたらご教示願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

問題の解決として次の点を試してください。 1.子プロセスは起動しているのか? CreateProcessの戻り値は何ですか 2.子プロセスは終了しているか? タスクマネージャでプロセスが消えますか

higeG
質問者

お礼

早速の回答ありがとうございます。 タスクマネージャの件は、会社にしかVCがないため、 現在は確認ができませんので、申し訳ありませんが、 月曜日に補足させて頂きます。

higeG
質問者

補足

子プロセス(mscgen.exe)は起動して、それによって生成された PNG画像もその後のShellExecute()で表示されています。 実際のソースでは、 if( !CreateProcess(...) ) {   エラー処理;   return; } としていますので、TRUEが返って来ていると思います。

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

実はボタンを複数回押してしまった。とか…。 OSに応答なしプロセスとして無視されている。とか…。

higeG
質問者

お礼

回答ありがとうございました。 unicode環境でのプロセス呼び出しについては、 もう少し自分で調べて分からなければ別途質問 したいと思います。

higeG
質問者

補足

結論から言いますと、プロジェクトのプロパティで文字セットを 変更したら親プロセスも終了するようになりました。 当初、プロジェクト生成時のデフォルトのまま「Unicode文字 セットを使用する」にしていたのですが、「マルチバイト文字 セットを使用する」に変更して、関数や関数の引数をそれに 合わせて変更したら無事終了できました。 Unicodeを使う設定の時の子プロセスの起動には何か注意が 必要なのでしょうか?

関連するQ&A