我們都知道MFC有個很有用的宏,叫TRACE,它用起來跟printf一樣簡單,能直接在VC++的output窗口中輸出調試信息,但非MFC的project卻沒有這個宏,只能用OutputDebugString這個API輸出,而OutputDebugString這個API卻不支持類似printf這樣的輸出格式,而且不能在Release版本中自動關閉,于是我自己寫了一個,其實實現起來還是蠻簡單的,上代碼:
#ifdef _DEBUG
#define MYTRACE DbgStrOut
#else
#define MYTRACE
#endif
// My debug output function
void DbgStrOut(const TCHAR *fmt,
);
把這個定義寫在預編譯頭中(默認是stdafx.h),就能很方便在別處調用了。這個MYTRACE的作用就相當于TRACE。下面是寫在cpp文件中的代碼。
void DbgStrOut(const TCHAR *fmt,
)
{
TCHAR szOutStr[512];
va_list ap;
va_start(ap, fmt);
vswprintf(szOutStr, fmt, ap);
va_end(ap);
OutputDebugString(szOutStr);
}
這樣就可以了,我嘗試了Windows Mobile的項目,也是可以通過的,而且支持TCHAR字符串,也就是說可以用Unicode。:)