C++ (MFC を使用) で記述された GUI Windows アプリケーションがあり、stdout
ストリームを介して出力するために親コンソールに接続されています。ここでは、AttachConsole API とRedirectIOToConsole
メソッドを使用します。
したがって、通常のコンソール アプリケーションから次の行を呼び出した場合 (標準出力にネイティブに出力されます):
_tprintf(_T("Test message.\n"));
期待どおりの出力が得られます。
しかし、(親コンソールが接続された) GUI アプリから同じコード行を呼び出すと、次のようになります。
親コマンド プロンプト ウィンドウに入力できるので、ハングしないことに注意してください。Enter キーを押すと、コマンドとして入力したものは何でも実行されます。
では、親コンソールに制御を戻すために、コンソール アプリから何を呼び出していないのでしょうか?