如果不是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的话无法通过编译。