(Ah, there's even more to it btw, if you make a "windows" application and launch it from a console application, and then in that "windows" application you make actually performs console I/O operations, then a new console window is (dynamically) allocated for that IO i.e. it opens on top of the parent console window.)