在开发过程中,有的时候需要实时查看一些处理结果,或者查看函数的运行时间以判断其性能是否达到要求,但是MFC/对话框环境中并没有控制台,也就是那个常见的黑框框,写了cout代码后,结果也不会输出,为了调试的方便,如何在MFC/对话框环境中加入控制台程序呢?
在程序初始化时,开启控制台,并开启读写权限:
///测试用,开启控制台,后面destroy里面配套有free
::AllocConsole();
freopen("CONOUT$","w+t",stdout);
在程序结束进行销毁时,关闭控制台:
FreeConsole();
这样,就可以在程序中自由的会用cin/cout进行输入输出了,需要注意的是,如果有多条线程,仅在主线程中开启了控制台,子线程是无法使用的,子线程要单独开启和关闭控制台,但是多条线程cout的显示都是在一个控制台里面的。