zoukankan      html  css  js  c++  java
  • VC++非MFC项目中如何使用TRACE宏

    记得原来尝试学MFC的时候觉得有一个TRACE可以在Debug时向VS的调试输出窗口输出字串符,用来调试时跟踪变量很方便。

    然则如果不是MFC项目或者ATL的项目的话是不能使用这个宏的。这时有一个没有什么额外消耗的办法能够做到向调试输出窗口输出。

    在项目中额外包含windows.h这个头文件,再使用OutputDebugString()这个函数就能够起到与TRACE()宏相同的效果。在进行一点包装就能和c中的printf一样接受不定项参数。

    下面程序做为范例。

     

    #include <iostream>

    #include <windows.h>

    using namespace std;


    bool _trace(TCHAR *format, ...)

    {

    TCHAR buffer[1000];


    va_list argptr;

    va_start(argptr, format);

    wvsprintf(buffer, format, argptr);

    va_end(argptr);


    OutputDebugString(buffer);


    return true;

    }


    int main() {

    int test = 5;

    _trace("hi output:%d", test);

    int a;

    cin >> a;

    }

    在vs2005中编译运行后在Output窗口输出"hi output : 5"

    这么nb的做法当然不是我自己发现的...在StackOverflow这里发帖问到的,那边还有一个方便使用的将trace包装的头文件和cpp文件。

    话说这个StackOverflow是个蛮新颖的程序员社区,这边提问被解答的效率和质量都相当高

    站点也做的很不错,web2.0风味十足,还有badges这种先进的要素

    -------------------------------------

    另外记得要将项目属性中General->Character Set设置为Not Set 或者Multi Byte才行,用Unicode的话无法通过编译。

    再附个包trace.rar有相应cpp/h

  • 相关阅读:
    性能相关记录
    邮箱SMTP
    IntelliJ IDEA 14.1.7 安装激活
    pychram永久激活
    电脑的奇葩坑
    jmeter过程中的坑
    各数据库驱动连接配置
    spring定时器--时间设置规则
    linux redhat7.2下vim的安装与使用方法
    分数化小数
  • 原文地址:https://www.cnblogs.com/lidabo/p/3446467.html
Copyright © 2011-2022 走看看