在有界面的应用程序中开启控制台调试窗口

Posted tyrhpx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在有界面的应用程序中开启控制台调试窗口相关的知识,希望对你有一定的参考价值。

在有界面的应用程序中开启控制台调试窗口非常有用,尤其是在调试多线程应用程序中,由于通过断点的方式调试程序时会导致线程挂起从而导致各种难于预料的结果。这时候就可以通过开启控制台窗口往窗口输出信息来查看线程的运行情况,这比通过日志文件输出的方式更方便和实时。

下面介绍四种开启控制台窗口的方法:

  • 通过AllocConsole()函数打开控制台窗口
  AllocConsole();//打开控制台窗口
  HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE); //获取标准输出句柄  
  SetConsoleTitle("test"); //设置Console的Title. 
  char msg[] = "Hello World!
";
  WriteConsole(hOutput, msg, strlen(msg), NULL, NULL); //向控制台窗口写入信息
  FreeConsole(hOutput); //释放句柄
  • 通过配置相关属性

    VC6通过在 Project | Setting...中,选项 Post-builder step 里新建command,VS2010通过在 属性->配置属性->生成事件->后期生成事件->命令行 中添加:
    editbin /subsystem:console $(OutDir)$(TargetName).exe
    然后使用cout或者printf向控制台输出 也可以通过获取标准输出句柄然后调用WriteConsole方式输出

  • 用TRACE,然后编译debug的工程,直接运行你的可执行文件,可以用Dbgview来获得输出

  • 使用DBWindow.h:MFC/DLL 编程时用独立的控制台窗口显示用户自定义调试信息


个人在使用过程中发现如果是正式版本不需要控制台窗口的情况下第2种最合适,不需要的时候修改项目设置即可,如果在正式版本中保留控制台窗口则使用第一种方法。其它方法看情况使用。
本文内容非原创,只是收集了网络上它人的成果,加以整理分享,以使更多的人看到,方便它人,共同进步!

参考列表

  1. http://blog.csdn.net/chinamming/article/details/17033923
  2. http://blog.csdn.net/vc_newer_and_newer/article/details/75349007

以上是关于在有界面的应用程序中开启控制台调试窗口的主要内容,如果未能解决你的问题,请参考以下文章

C++ 解释器/控制台/片段编译器

小米盒子3ADB开关如何打开

Chrome调试模式获取App混合应用H5界面元素

微信小程序怎么悬浮窗口

如何写入控制台窗口进行调试?

Delphi7.0如何调试程序?