0

GUI と非 GUI ベースの実行をサポートする VC++ Windows アプリケーションに取り組んでいます。非 GUI ベースの実行は、スクリプト作成用に設計されています。ここで、そのアプリケーションを GUI モードで実行すると、エラーまたは例外が発生した場合に、ユーザー確認用のメッセージ ボックスを表示できます。ただし、アプリケーションがサイレント モードで実行されている場合、コマンド プロンプトにエラー メッセージを表示したいのですが、どうすればよいでしょうか。AllocConsole(...) を試しましたが、別のウィンドウがポップアップします。これは避けたい。私のユースケースは以下です-

CMD> myapplication.exe -silent
CMD> Error XXXX: Application message.

ここで、AllocConsole(...) からポップアップしたコンソールではなく、同じプロンプトにエラー メッセージが表示されるはずです。

助けやアイデアはありますか?

ありがとう、オムキー

4

1 に答える 1

0

これはコンソール アプリケーションではないため、コンソールが実行されると、アプリが起動されるとすぐにコンソールが返されるため、コンソールにマップされた std を取得しない Windows アプリの別のプロセスが生成されます (つまり、それを待機しません)。終了します)。

この場合、次のようにすることができます (kernel32):

試す

アタッチコンソール(-1);

あなたがそれを得るなら、それは大丈夫です

そうでない場合は、コンソールから実行されていないことを意味し、使用する必要があります

AllocConsole(...);

コンソールにアタッチすると、アプリがコンソールにテキストを送信している間に、入力してコンソールと対話して他のものを実行できるため、これは奇妙に難しく見えます。

于 2013-04-24T04:47:43.150 に答える