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

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * DBGOUT.H
  3.  *
  4.  * Useful debugging output macros that compile to nothing and
  5.  * eliminate ugly #ifdef DEBUGs from source code.  Note that
  6.  * string literals do not need TEXT() around them as this file
  7.  * includes them.
  8.  *
  9.  * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
  10.  *
  11.  * Kraig Brockschmidt, Microsoft
  12.  * Internet  :  kraigb@microsoft.com
  13.  * Compuserve:  INTERNET>kraigb@microsoft.com
  14.  */
  15. #ifndef _DBGOUT_H
  16. #define _DBGOUT_H
  17. #ifdef DEBUG
  18. //Basic debug macros
  19. #define D(x)        {x;}
  20. #define ODS(x)  
  21.     {
  22.     TCHAR        szDebug[128];
  23.     OutputDebugString(TEXT(x));
  24.     wsprintf(szDebug, TEXT(" [%s, %u]rn"), (LPTSTR)__FILE__, __LINE__);
  25.     OutputDebugString(szDebug);
  26.     }
  27. #define ODSsz(f, s) 
  28.     {
  29.     TCHAR       szDebug[128];
  30.     wsprintf(szDebug, TEXT(f), (LPTSTR)s);
  31.     OutputDebugString(szDebug);
  32.     wsprintf(szDebug, TEXT(" [%s, %u]rn"), (LPTSTR)__FILE__, __LINE__);
  33.     OutputDebugString(szDebug);
  34.     }
  35. #define ODSu(f, u)  
  36.     {
  37.     TCHAR       szDebug[128];
  38.     wsprintf(szDebug, TEXT(f), (UINT)u);
  39.     OutputDebugString(szDebug);
  40.     wsprintf(szDebug, TEXT(" [%s, %u]rn"), (LPTSTR)__FILE__, __LINE__);
  41.     OutputDebugString(szDebug);
  42.     }
  43. #define ODSlu(f, lu) 
  44.     {
  45.     TCHAR       szDebug[128];
  46.     wsprintf(szDebug, TEXT(f), (DWORD)lu);
  47.     OutputDebugString(szDebug);
  48.     wsprintf(szDebug, TEXT(" [%s, %u]rn"), (LPTSTR)__FILE__, __LINE__);
  49.     OutputDebugString(szDebug);
  50.     }
  51. #define ODSlulu(f, lu1, lu2) 
  52.     {
  53.     TCHAR       szDebug[128];
  54.     wsprintf(szDebug, TEXT(f), (DWORD)lu1, (DWORD)lu1);
  55.     OutputDebugString(szDebug);
  56.     wsprintf(szDebug, TEXT(" [%s, %u]rn"), (LPTSTR)__FILE__, __LINE__);
  57.     OutputDebugString(szDebug);
  58.     }
  59. #define ODSszu(f, s, u)     
  60.     {
  61.     TCHAR       szDebug[128];
  62.     wsprintf(szDebug, TEXT(f), (LPTSTR)s, (UINT)u);
  63.     OutputDebugString(szDebug);
  64.     wsprintf(szDebug, TEXT(" [%s, %u]rn"), (LPTSTR)__FILE__, __LINE__);
  65.     OutputDebugString(szDebug);
  66.     }
  67. #define ODSszlu(f, s, lu)   
  68.     {
  69.     TCHAR       szDebug[128];
  70.     wsprintf(szDebug, TEXT(f), (LPTSTR)s, (DWORD)lu);
  71.     OutputDebugString(szDebug);
  72.     wsprintf(szDebug, TEXT(" [%s, %u]rn"), (LPTSTR)__FILE__, __LINE__);
  73.     OutputDebugString(szDebug);
  74.     }
  75. #define ASSERT(condition) 
  76.     {
  77.     if (!(condition))
  78.         ODS("Assertion Failure");
  79.     }
  80. #else   //NO DEBUG
  81. #define D(x)
  82. #define ODS(x)
  83. #define ODSsz(f, s)
  84. #define ODSu(f, u)
  85. #define ODSlu(f, lu)
  86. #define ODSszu(f, s, u)
  87. #define ODSszlu(f, s, lu)
  88. #define ASSERT(c)
  89. #endif //DEBUG
  90. #endif //_DBGOUT_H