很多编程的朋友在用VS编程MFC文件是都会遇到一个问题:出错了,但不知道错哪里。光靠系统提示的消息很多时候都不能锁定错误的地方,而使用断点调试的方法,工程量大,而且存在一定的盲目性。在这里,我给大家分享一个相对来说比较方便的方法:
在MFC对话框程序中引入CMD控制台调试窗口,方法如下:
第一步:在stdafx.h头文件中导入编写CMD控制台调试窗口所需要的头文件,如下:
#include <io.h>//printf调试信息
#include <fcntl.h>
#include <stdio.h>
第二部:在***Dlg.cpp文件中定义printf调试窗口函数
void InitConsoleWindow()//printf调试窗口
{
int nCrt = 0;
FILE* fp;
AllocConsole();
nCrt = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
fp = _fdopen(nCrt, "w");
*stdout = *fp;
setvbuf(stdout, NULL, _IONBF, 0);
}
第三步:在***Dlg.cpp的OnInitDialog()方法中初始化CMD控制台调试窗口程序
InitConsoleWindow(); //初始化CMD控制台调试窗口
至此,我们已经完成了在MFC工程中引入CMD控制台调试窗口的工作,接下来,我们可以在任何位置写一个printf函数来监测程序运行到哪一步了
例如,我写了一下一条语句:
printf("测试 Test ABC 123 str = %s\r\n", "debug");
运行结果如下图:
谢谢大家的细心看查与精心指导!