DEBUG.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. #ifndef DEBUG_H
  2. #define DEBUG_H
  3. /*
  4. **-----------------------------------------------------------------------------
  5. **  File:       Debug.h
  6. **  Purpose:    Sample Debug code
  7. **  Notes:
  8. **
  9. **  Copyright (c) 1995 - 1997 by Microsoft, all rights reserved
  10. **-----------------------------------------------------------------------------
  11. */
  12. /*
  13. **-----------------------------------------------------------------------------
  14. **  Include files
  15. **-----------------------------------------------------------------------------
  16. */
  17. #include "Common.h"
  18. /*
  19. **-----------------------------------------------------------------------------
  20. **  Defines
  21. **-----------------------------------------------------------------------------
  22. */
  23. #ifdef DEBUG
  24. // Note:  Define DEBUG_PROMPT_ME if you want MessageBox Error prompting
  25. //   This can get annoying quickly...
  26. // #define DEBUG_PROMPT_ME
  27. // Pre and Post debug string info
  28. #define START_STR TEXT ("BOIDS: ")
  29. #define END_STR TEXT ("rn")
  30. #endif // DEBUG
  31. // Debug Levels
  32. #define DEBUG_ALWAYS 0L
  33. #define DEBUG_CRITICAL 1L
  34. #define DEBUG_ERROR 2L
  35. #define DEBUG_MINOR 3L
  36. #define DEBUG_WARN 4L
  37. #define DEBUG_DETAILS 5L
  38. // Sample Errors
  39. #define APPERR_GENERIC MAKE_DDHRESULT (10001)
  40. #define APPERR_INVALIDPARAMS MAKE_DDHRESULT (10002)
  41. #define APPERR_NOTINITIALIZED MAKE_DDHRESULT (10003)
  42. #define APPERR_OUTOFMEMORY MAKE_DDHRESULT (10004)
  43. #define APPERR_NOTFOUND MAKE_DDHRESULT (10005)
  44. /*
  45. **-----------------------------------------------------------------------------
  46. **  Macros
  47. **-----------------------------------------------------------------------------
  48. */
  49. #ifdef DEBUG
  50.     #define DPF dprintf
  51.     #define ASSERT(x) 
  52.         if (! (x)) 
  53.         { 
  54.             DPF (DEBUG_ALWAYS, TEXT("Assertion violated: %s, File = %s, Line = #%ldn"), 
  55.                  TEXT(#x), TEXT(__FILE__), (DWORD)__LINE__ ); 
  56.             abort (); 
  57.         }        
  58.    #define REPORTERR(x) 
  59.        ReportDDError ((x), TEXT("File = %s, Line = #%ldn"), 
  60.                       TEXT(__FILE__), (DWORD)__LINE__ );
  61.    #define FATALERR(x) 
  62.        ReportDDError ((x), TEXT("File = %s, Line = #%ldn"), 
  63.                       TEXT(__FILE__), (DWORD)__LINE__ ); 
  64.        OnPause (TRUE); 
  65.        DestroyWindow (g_hMainWindow);
  66. #else
  67.    #define REPORTERR(x)
  68.    #define DPF 1 ? (void)0 : (void)
  69.    #define ASSERT(x)
  70.    #define FATALERR(x) 
  71.        OnPause (TRUE); 
  72.        DestroyWindow (g_hMainWindow);
  73. #endif // DEBUG
  74. /*
  75. **-----------------------------------------------------------------------------
  76. **  Global Variables
  77. **-----------------------------------------------------------------------------
  78. */
  79. // Debug Variables
  80. #ifdef DEBUG
  81. extern DWORD g_dwDebugLevel;
  82. #endif
  83. extern BOOL  g_fDebug;
  84. /*
  85. **-----------------------------------------------------------------------------
  86. **  Function Prototypes
  87. **-----------------------------------------------------------------------------
  88. */
  89. // Debug Routines
  90. #ifdef DEBUG
  91. void __cdecl dprintf (DWORD dwDebugLevel, LPCTSTR szFormat, ...);
  92. #endif //DEBUG
  93. void _cdecl ReportDDError (HRESULT hResult, LPCTSTR szFormat, ...);
  94. /*
  95. **-----------------------------------------------------------------------------
  96. **  End of File
  97. **-----------------------------------------------------------------------------
  98. */
  99. #endif // End DEBUG_H