zoukankan      html  css  js  c++  java
  • MFC_vc++使用TRACE打印信息在"输出窗口"中,或者控制台方法,

     MFC集成了相应的宏"TRACE"来实现这个功能。示例如下:

    TRACE("x = %d and y = %x and z = %f ", 1, 2, 3);
      可以直接打印信息,打印出来的东西在"输出窗口"中

    Debug模式有效

                //MessageBox(L"configIP="+configIP+",client IPaddr="+IPaddr);
                TRACE(L"configIP="+configIP+",client IPaddr="+IPaddr);

    在MFC编程中,代码的调试一直不太直观。搞一个 MessageBox 来打印信息查看程序是否执行或执行是否有误,又或者是在程序中设断点都有不太方便的地方,特别是在需要获得多个信息的情况下更是不便。此外,MessageBox 在涉及到打印非 CString 格式的信息时还要用 CString 的 Format 函数进行格式转换,又给调试带来进一步的麻烦。综上,在MFC程序的调试阶段加入像WIN32控制台程序那样的控制台来打印程序信息显得直观又方便易用。下面,是在MFC程序中添加控制台程序的方法:

        在对话框程序的初始化函数OnInitDialog()中(如果不是对话框程序,或者希望在子对话框中加入,只需将代码添加到相应的入口位置即可)加入如下代码:

    ::AllocConsole();//打开控件台资源
    FILE *fp;
    freopen_s(&fp,"CONOUT$", "w+t", stdout);//申请写,这个是针对VS2013版本的代码,在VS较为早期的版本比如VS2008中,可将freopen_s改为freopen,并将参数改为对应形式即可
            到此,程序在运行时就会打开一个控制台窗口等待输入,只要在程序中加入 printf(",,,,,,")  则可在控制台中打印出信息。

        最后,要记得在程序关闭的地方调用如下函数关闭掉控制台程序,不然会导致程序无法正常关闭的悲剧。

    本人是在对话框程序的 WM_CLOSE 消息响应函数中添加的:

    FreeConsole();//释放控制台资源
        

      

    https://www.cnblogs.com/endenvor/p/9808630.html

    欢迎讨论,相互学习。 txwtech@163.com
  • 相关阅读:
    Javascript
    Javascript
    Javascript
    Java web 中Session有效时间设置
    给div添加滚动条
    Java获得绝对路径
    JS实现选择文件保存路径
    JS实现文件上传
    jsp日期插件My97DatePicker的使用
    Java重写equals()方法
  • 原文地址:https://www.cnblogs.com/txwtech/p/15249794.html
Copyright © 2011-2022 走看看