Multiple consoles for a single application C++

Tom C picture Tom C · Dec 30, 2013 · Viewed 25.7k times · Source

Is it possible to create two console windows (one being the main) and the secondary being a pop-up like a message box in Windows Forms?

I only want the secondary console window to hold IDs (that will be hard coded into the application) So the user does not have to keep returning to the main menu to check available IDs

If so how would you go about it?

Many Thanks

Answer

herohuyongtao picture herohuyongtao · Dec 30, 2013

Yes, you can do it.

The solution is actually very simple - our process can start a new helper child-process, so the helper process will display whatever our process sends it. We can easily implement such a solution with pipes: for each new console (that I'll call logger), we'll open a pipe, and execute a Console-Helper application - the role of this application is very simple, it will print everything sent through the pipe. Check out this article Multiple consoles for a single application for details (contains the source code).

In the code, it implement a console class CConsoleLogger, then you can create multiple console windows like:

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

And you will get something like:

enter image description here