Windows で C++ コンソール アプリケーションを作成すると、自動的にコンソール ウィンドウが作成され、std::cout がコンソール ウィンドウに出力されます。
コンソール ウィンドウも作成したい GUI アプリケーションがあります。AllocConsole() 関数を使用してコンソール ウィンドウを作成できますが、出力がコンソール ウィンドウに表示されるように、std::cout をコンソールにリダイレクト/アタッチするにはどうすればよいですか?
GetStdHandleとSetStdHandleを使用します。私が似たようなことをしたので、それは長い間長いことを考えると、あなたはいくつかの例を見たほうがよいでしょう
この重複した質問もあります
私の知る限り、標準のハンドルを新しいコンソールにリダイレクトすることはできません。書き込みたい各デバイスのハンドルを取得するには、GetStdHandle(DWORD)を呼び出す必要があります。このハンドルを使用して、データをやり取りするために適切なハンドルを使用してWriteFile、ReadFile、WriteConsole、およびReadConsoleInput関数を呼び出す必要があります。