printf直接输出调试信息到console窗口

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

1.先包含下面俩个头文件.

#include
#include  

2.增加下面方法

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");
}

  

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

//后面你就可以使用printf输出运行信息了。

你可能感兴趣的:(VC)