将std :: coutredirect到新创build的控制台

Windows下创buildC ++控制台应用程序时,会自动为您创build控制台窗口,并将std :: cout输出到控制台窗口。

我有一个GUI应用程序,我也想创build一个控制台窗口。 我可以使用AllocConsole()函数创build控制台窗口,但是如何将std :: coutredirect/附加到控制台,以便输出显示在控制台窗口中?

你想使用GetStdHandle和SetStdHandle。 鉴于我做了类似的事情很长很长一段时间,你最好看一些例子

还有这个重复的问题

据我所知,你不能将标准手柄重定向到新的控制台。 您将不得不调用GetStdHandle(DWORD)来获取要写入的每个设备的句柄。 使用这个句柄,你需要用适当的句柄来调用WriteFile,ReadFile,WriteConsole和ReadConsoleInput函数来传递数据。