#include "console2.h"
#include <windows.h>
console::console()
{
// create a console window
AllocConsole();
// redirect cout to console window
this->old_cout = cout.rdbuf();
this->n_cout.open("CONOUT$");
cout.rdbuf( this->n_cout.rdbuf() );
// redirect cerr
this->old_cerr = cerr.rdbuf();
this->n_cerr.open("CONOUT$");
cerr.rdbuf( this->n_cerr.rdbuf() );
// redirect cin
this->old_cin = cin.rdbuf();
this->n_cin.open("CONIN$");
cin.rdbuf( this->n_cin.rdbuf() );
}
console::~console()
{
// restore streams
cin.rdbuf( this->n_cin.rdbuf() );
cerr.rdbuf( this->n_cerr.rdbuf() );
cout.rdbuf( this->n_cout.rdbuf() );
// free console resources
FreeConsole();
}