一个应用程序多个控制台的C++实现

19

是否可以创建两个控制台窗口(一个是主窗口,另一个是类似于 Windows Forms 中的消息框的弹出窗口)?

我只想让第二个控制台窗口保存ID(这些ID将硬编码到应用程序中),这样用户不必返回到主菜单来检查可用的ID。

如果可以,那么该如何实现?

非常感谢


1
您需要自行实现额外的控制台。一个进程最多只能有一个系统提供的控制台。 - David Heffernan
@DavidHeffernan 还是创建一个从进程并传递消息? - Yakk - Adam Nevraumont
3个回答

24

可以的,您可以做到。

其实解决方案非常简单——我们的进程可以启动一个新的helper子进程,这样帮助进程就会显示我们进程发送的任何内容。我们可以很容易地通过管道实现这样的解决方案:对于每个新的console(我称之为记录器),我们将打开一个管道,并执行一个Console-Helper应用程序——这个应用程序的作用非常简单,它将打印通过管道发送的所有内容。请参阅本文Multiple consoles for a single application中的详细信息(包含源代码)。

在代码中,它实现了一个控制台类CConsoleLogger,然后您可以创建多个控制台窗口,例如:

CConsoleLogger another_console;
another_console.Create("This is the first console");
another_console.printf("WOW !!! COOLL !!! another console ???");

然后你会得到类似下面的东西:

输入图像说明


22
请你总结一下基本的步骤,使得这个回答自足。在stackoverflow上应避免仅提供链接的回答。 - IInspectable

4

-3

没有

一个进程只能关联一个控制台。

AllocConsole


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接