In file ConsoleClose.cpp, line 69 - destructor uses throw method, which can lead to unexpected results.
"You can throw an exception in a destructor, but that exception must not leave the destructor; if a destructor exits by a throw, all kinds of bad things are likely to happen because the basic rules of the standard library and the language itself will be violated. Don't do it."
Bjarne Stroustrup's C++ Style and Technique FAQ
Implement with try..catch blocks.