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

Windows编程

开发平台:

Visual C++

  1. //+---------------------------------------------------------------------------
  2. //  Copyright 1996-1997 Microsoft Corporation.
  3. //
  4. //  File:       debug.hxx
  5. //
  6. //  Contents:   Debugging macros
  7. //
  8. //----------------------------------------------------------------------------
  9. #ifndef __DEBUG_HXX__
  10. #define __DEBUG_HXX__
  11. #if DBG == 1
  12. #include <stdio.h>
  13. #include <stdarg.h>
  14. # define Win4Assert(x)  
  15.         (void)((x) || (Win4AssertEx(__FILE__, __LINE__, #x),0))
  16. void Win4AssertEx( char const * szFile, int iLine, char const * szMessage);
  17. #define DEB_ERROR     0x00000001      // exported error paths
  18. #define DEB_WARN      0x00000002      // exported warnings
  19. #define DEB_TRACE     0x00000004      // exported trace messages
  20. #define DEB_IERROR    0x00000100      // internal error paths
  21. #define DEB_IWARN     0x00000200      // internal warnings
  22. #define DEB_ITRACE    0x00000400      // internal trace messages
  23. #define DEF_INFOLEVEL (DEB_ERROR | DEB_WARN)
  24. #define DECLARE_INFOLEVEL(comp) 
  25.         extern unsigned long comp##InfoLevel = DEF_INFOLEVEL;
  26. #define DECLARE_DEBUG(comp) 
  27.     extern unsigned long comp##InfoLevel; 
  28.     _inline void 
  29.     comp##InlineDebugOut(unsigned long fDebugMask, char *pszfmt, ...) 
  30.     { 
  31.         if (comp##InfoLevel & fDebugMask) 
  32.         { 
  33.             char acsString[120];
  34.             va_list va; 
  35.             va_start(va, pszfmt);
  36.             vsprintf(acsString, pszfmt, va); 
  37.             va_end(va);
  38.             OutputDebugStringA(acsString);
  39.         } 
  40.     }
  41. #else  // DBG == 0
  42. #define Win4Assert(x)
  43. #define DECLARE_DEBUG(comp)
  44. #define DECLARE_INFOLEVEL(comp)
  45. #endif // DBG == 0
  46. #endif // __DEBUG_HXX__