windows-nt/Source/XPSP1/NT/shell/ext/hnw/shared/debug.h
2020-09-26 16:20:57 +08:00

89 lines
1.9 KiB
C

//
// Debug.h
//
// Debug stuff for non-MFC projects.
//
// History:
//
// 3/??/96 KenSh Copied from InetSDK sample, added AfxTrace from MFC
// 4/10/96 KenSh Renamed AfxTrace to MyTrace to avoid conflicts
// in projects that use MFC
//
#ifndef __DEBUG_H__
#define __DEBUG_H__
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _DEBUG
void __cdecl MyTrace(const char* lpszFormat, ...);
// void DisplayAssert(char* pszMsg, char* pszAssert, char* pszFile, unsigned line);
BOOL DisplayAssert(LPCSTR pszMessage, LPCSTR pszFile, unsigned line);
// #define SZTHISFILE static char _szThisFile[] = __FILE__;
#define SZTHISFILE
#define VERIFY(f) ASSERT(f)
#define DEBUG_ONLY(f) (f)
#ifndef TRACE
#define TRACE ::MyTrace
#endif
#define THIS_FILE __FILE__
#ifndef AfxDebugBreak
#define AfxDebugBreak() _asm { int 3 }
#endif
#define ASSERTSZ(f, pszMsg) \
do \
{ \
if (!(f) && DisplayAssert(pszMsg, THIS_FILE, __LINE__)) \
AfxDebugBreak(); \
} while (0) \
#ifndef ASSERT
#define ASSERT(f) \
do \
{ \
if (!(f) && DisplayAssert(NULL, THIS_FILE, __LINE__)) \
AfxDebugBreak(); \
} while (0) \
#endif
// #define FAIL(szMsg) \
// { static char szMsgCode[] = szMsg; \
// DisplayAssert(szMsgCode, "FAIL", _szThisFile, __LINE__); }
// // macro that checks a pointer for validity on input
// //
// #define CHECK_POINTER(val) if (!(val) || IsBadWritePtr((void *)(val), sizeof(void *))) return E_POINTER
#else // _DEBUG
#define SZTHISFILE
#define VERIFY(f) ((void)(f))
#define DEBUG_ONLY(f) ((void)0)
inline void __cdecl MyTrace(const char* /*lpszFormat*/, ...) { }
#define TRACE 1 ? (void)0 : ::MyTrace
#define ASSERTSZ(fTest, err)
#define ASSERT(fTest)
#define FAIL(err)
#define CHECK_POINTER(val)
#endif // !_DEBUG
#ifdef __cplusplus
}
#endif
#endif // !__DEBUG_H__