TRACE() OutputDebugString()

  • 在 Debug 模式下,TRACE() 和OutputDebugString() 两者都输出在下面的窗口 “调试 (debug)” 窗口;

image.png

  • 在 Release 模式下,TRACE 不起作用

OutputDebugString 可以通过 dgbview.exe 查看,但它不支持 格式化字符串

自定义输出函数

  1. ASCII版本:
  2. void DbgOutput(const char *szFormat, ...) {
  3. #ifdef _DEBUG
  4. char szbufFormat[0x1000];
  5. char szBufFormat_Game[0x1010] = "CPALyth:";
  6. va_list argList;
  7. va_start(argList, szFormat); //参数列表初始化
  8. vsprintf_s(szbufFormat, szFormat, argList);
  9. strcat_s(szBufFormat_Game, szbufFormat);
  10. OutputDebugStringA(szBufFormat_Game);
  11. va_end(argList);
  12. #endif
  13. }
  14. Unicode版本:
  15. void DbgOutputW(const TCHAR *szFormat, ...) {
  16. #ifdef _DEBUG
  17. TCHAR szbufFormat[0x1000];
  18. TCHAR szBufFormat_Game[0x1010] = L"CPALyth:";
  19. va_list argList;
  20. va_start(argList, szFormat); //参数列表初始化
  21. vswprintf_s(szbufFormat, szFormat, argList);
  22. wcscat(szBufFormat_Game, szbufFormat);
  23. OutputDebugString(szBufFormat_Game);
  24. va_end(argList);
  25. #endif
  26. }