将std :: cout重定向到新创建的控制台

时间:2009-11-24 14:44:37

标签: c++ windows console cout

在Windows下创建C ++控制台应用程序时,会自动为您创建控制台窗口,并将std :: cout输出提供给控制台窗口。

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

2 个答案:

答案 0 :(得分:3)

您想要使用GetStdHandle和SetStdHandle。鉴于我做了类似事情已经很长很长时间了,你会更好地看一些Some examples

还有duplicate question

答案 1 :(得分:0)

据我所知,您无法将标准句柄重定向到新控制台。您必须致电GetStdHandle(DWORD)以获取要写入的每个设备的句柄。使用此句柄,您需要使用适当的句柄调用WriteFile,ReadFile,WriteConsole和ReadConsoleInput函数来来回传递数据。