VC++非MFC项目中如何使用TRACE宏

  如果不是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;

}

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

猜你喜欢

转载自www.cnblogs.com/jiangzhaowei/p/10705654.html
今日推荐