Skip to main content
GameDev.net gamedev.net
🔒 Locked

C++ Win32: spawning a second console window

Started by Mantear Dec 5, 2008 at 11:09 AM 2 replies 7k views
Original Post
Mantear
Mantear
Greetings! I have a Win32 console application under VS2008 in C++. I have two threads running. One thread prints the status of the program, the other prints a series of menus and lets the user enter in menu selections. I would like to spawn a second console window so I can seperate the printing of the two threads. I don't know enough Win32 to even know what to google for, so a point in the right direction would be greatly appreciated. Thanks!
SiCrane
SiCrane
The short answer is that you can't: only a single console can be attached to any given process.

The long answer is that you can fake it by spawning one or more additional processes and feeding data to those processes. One way to do that is to use CreateProcess() to create a single additional process and redirect pipes to child process see this article for information on how to do that. Alternately, you can create two extra console processes and use AttachConsole() and FreeConsole() to connect to and detach from the child processes.
Mantear
Mantear
After searching around for a while looking at CreateProcess() and AttachConsole(), I don't think this is the direction I want to take. I'm guessing it's going to be a lot easier to create a simple dialog box with a text box from the consol app then try to get two consoles on the screen.
LessBread
LessBread
Wouldn't it be easier to simply label the output from either thread with an identifier? Like this:

T1: ...output...
T1: ...output...
T1: ...output...
T2: ...output...
T1: ...output...
T2: ...output...
...

"I thought what I'd do was, I'd pretend I was one of those deaf-mutes." - the Laughing Man

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.