您的位置:首页 > 其它

Windows程序中增加consle窗显示printf输出调试信息的一种方法

2010-08-13 11:53 363 查看
在编写桌面程序的时候打印调试信息通常习惯是用自己封装好的函数利用OutPutDebugString函数输出然后借助DbgView查看,但是有时候系统其它程序也用OutPutDebugString在输出一些信息的时候,这样的话DbgView窗口上的信息就显得很杂乱,干扰了分析工作.虽然我们可以借助其它方法比如输出到文件等等,但是还是觉得太麻烦。所以在此介绍一种用printf直接输出调试信息到console窗的方法和一个小工具PeDbg

#include <io.h>
#include <fcntl.h>

//......

void CDbgTestApp::InitConsoleWindow(void)
{
int hCrt;
FILE *hf;
AllocConsole();
hCrt=_open_osfhandle(
(long)GetStdHandle(STD_OUTPUT_HANDLE),
_O_TEXT );
hf=_fdopen( hCrt, "w" );
*stdout=*hf;
setvbuf( stdout, NULL, _IONBF, 0 );
// test code
printf("InitConsoleWindow OK!/n");
}

//在函数CDbgTestApp::InitInstance()中的所有代码前面调用该函数:
InitConsoleWindow();

//后面你就可以使用printf输出运行信息了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: