为了MFC程序调试方便,如果想要打开控制台窗口,只需在窗口初始化的函数中,添加两行代码即可。
1)找到窗口初始化函数,我的初始化函数是BOOL CMy133Dlg::OnInitDialog();
2)在初始化函数返回值之前,添加以下两行代码:
AllocConsole();//为当前的窗口程序申请一个Console窗口
freopen("CONOUT$", "a+", stdout);
大功告成!!!
其中,freopen函数用来替换一个流,或者说重新分配文件指针,以实现重定向。可重定向的流有:标准输入流、标准输出流或者标准错误流。其函数原型为
FILE *freopen(const char *path, const char *mode, FILE *stream);
其中"CONOUT$"是指代当前console的特殊字符串,"a+"表明按读的方法打开,允许读,允许在尾部添加新内容,不能在前面改写。stdout指代标准输出流。