printf,支援格式化字串。
TRACE(_T("簡單訊息\n"));
TRACE(_T("整數: %d, 字串: %s\n"), 123, _T("Hello"));
TRACE(_T("指標: 0x%08X\n"), pPtr);
| 宏 | 參數數 | 範例 |
|---|---|---|
TRACE0 | 0 | TRACE0("進入函數\n"); |
TRACE1 | 1 | TRACE1("錯誤碼: %d\n", err); |
TRACE2 | 2 | TRACE2("座標: (%d, %d)\n", x, y); |
TRACE3 | 3 | TRACE3("RGB: %d, %d, %d\n", r, g, b); |
原理:避免 va_list 可變參數處理開銷,Debug 版本展開為直接呼叫 _AFX_TRACE。
#ifdef _DEBUG TRACE(...); #endif (雖然 TRACE 本身已處理,但可用於自訂宏)。__FILE__, __LINE__。CtraceContext 導向檔案、Syslog、資料庫。afxTraceEnabled = FALSE 全域停用。OutputDebugString。_T() 或 L"" 確保字串型別正確。
OutputDebugString(_T("直接呼叫 API\n"));
// 優點:Release 版也可保留 (若需)、無格式化解析開銷
// 缺點:無自動檔案/行號、無格式化支援