Quantcast
Channel: GameDev.net
Viewing all articles
Browse latest Browse all 17825

Win32 application| cout output both on console and on file

$
0
0
Hi everyone, the code below is my setup for opening a console in a Win32 project (using visual studio) and having the cout print stuff on it, it is mostly copy-pasted from stackoverflow with some trial and error changes I did without being sure of what I was doing, but it works. Though now I want to understand it, code below void debugConsole(bool create = true); int WINAPI WinMain(HINSTANCE instance, HINSTANCE prevInstance, LPSTR cmdLine, int show) { #if defined(DEBUG) || defined(_DEBUG) debugConsole(); #endif return 0; } void debugConsole(bool create) { if (create) { //Create Console FILE* stream; AllocConsole(); freopen_s(&stream, "conout$", "w", stdout); } } So from what I can tell, I am telling it that now the stdout stream (stuff I send using std::cout) get written (that's why the "w") to the console output, which is specified using "conout$". So basically freopen_s job is to send a stream somewhere else? But where is the "conout$" coming from? There is like a switch inside freopen_s that tells it the meaning of "conout$", which would be "send stuff to console"? What is the FILE* stream sent to freopen_s doing though? also let's say that under that line I write freopen_s(&stream, "output.txt", "w", stdout); I tried this out and it creates said file and put the cout output into it, which is great, but what if I want both? How do I set it up in a way than now cout content is cloned and sent both to the console and to my output file? Thanks

Viewing all articles
Browse latest Browse all 17825

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>