📄 mydebug.h
字号:
#ifndef __MY_DEBUG_H__
#define __MY_DEBUG_H__
#include <winnt.h>
#include <Excpt.h>
#define __ENB_TRY__
extern TCHAR g_szDebugBuffer[256];
extern void WriteError( char *err);
#ifdef __ENB_TRY__
#define TRY_BEGIN __try{
#else
#define TRY_BEGIN {
#endif
// ::MessageBox(NULL, g_szDebugBuffer, _T("Except Error"), MB_OK);
#ifdef __ENB_TRY__
#define TRY_END \
} \
__except(EXCEPTION_EXECUTE_HANDLER) \
{ \
_stprintf ( g_szDebugBuffer, \
_T("Except Code=%x%c%cAt Line=%4d File=%s"),\
GetExceptionCode(), \
0x0d, 0x0a, \
__LINE__, \
__FILE__ ); \
TRACE("Except:: %s\n",g_szDebugBuffer); \
WriteError(g_szDebugBuffer); \
}
#define TRY_END1( title ) \
} \
__except(EXCEPTION_EXECUTE_HANDLER) \
{ \
_stprintf ( g_szDebugBuffer, \
_T("Except Code=%x%c%cAt Line=%4d File=%s"),\
GetExceptionCode(), \
0x0d, 0x0a, \
__LINE__, \
__FILE__ ); \
TRACE("Except:: %s\n",g_szDebugBuffer); \
::MessageBox(NULL, g_szDebugBuffer, title, MB_OK);\
}
#define TRY_END2( title, msg ) \
} \
__except(EXCEPTION_EXECUTE_HANDLER) \
{ \
_stprintf ( g_szDebugBuffer, \
_T("Except Code=%x%c%c%s%c%cAt Line=%4d File=%s"),\
GetExceptionCode(), \
0x0d,0x0a, \
msg, \
0x0d,0x0a, \
__LINE__, \
__FILE__ ); \
TRACE("Except:: %s\n",g_szDebugBuffer); \
::MessageBox(NULL, g_szDebugBuffer, title, MB_OK);\
}
#define TRY_END3( title, msg1, msg2 ) \
} \
__except(EXCEPTION_EXECUTE_HANDLER) \
{ \
_stprintf ( g_szDebugBuffer, \
_T("Except Code=%x%c%c%s%c%c%s%c%cAt Line=%4d File=%s"),\
GetExceptionCode(), \
0x0d,0x0a, \
msg1, \
0x0d,0x0a, \
msg2, \
0x0d,0x0a, \
__LINE__, \
__FILE__ ); \
TRACE("Except:: %s\n",g_szDebugBuffer); \
::MessageBox(NULL, g_szDebugBuffer, title, MB_OK);\
}
#define TRY_END_EVENT_MSG( title, msg ) \
} \
__except(EXCEPTION_EXECUTE_HANDLER) \
{ \
_stprintf ( g_szDebugBuffer, \
_T("信息:%s%c%c异常代码=%x%c%c%s%c%c"), \
msg, \
0x0d,0x0a, \
GetExceptionCode(), \
0x0d,0x0a ); \
TRACE("Except:: %s\n",g_szDebugBuffer); \
::MessageBox(NULL, g_szDebugBuffer, title, MB_OK);\
}
#else
#define TRY_END }
#define TRY_END1( title ) }
#define TRY_END2( title, msg ) }
#define TRY_END3( title, msg1, msg2 ) }
#endif
#ifdef _DBG_OUT //{
#define _EXCEPT_OUT_ \
{ \
if( !g_pDbgFile ) \
g_pDbgFile = fopen(g_szDbgFile, "a+t" ); \
if( g_pDbgFile ) \
{ \
fprintf ( g_pDbgFile, \
"Except[%x]:Line:%4d File:%s\n", \
GetExceptionCode(), \
__LINE__, \
__FILE__ ); \
fclose(g_pDbgFile); \
g_pDbgFile = NULL; \
g_pDbgFile = fopen(g_szDbgFile, "a+t" ); \
} \
{ \
sprintf ( g_szDebugBuffer, \
"Except[%x]:Line:%4d File:%s\n", \
GetExceptionCode(), \
__LINE__, \
__FILE__ ); \
AfxMessageBox(g_szDebugBuffer); \
} \
}
#else //_DBG_OUT
#define _EXCEPT_OUT_ \
{ \
sprintf ( g_szDebugBuffer, \
"Except[%x]:Line:%4d File:%s\n", \
GetExceptionCode(), \
__LINE__, \
__FILE__ ); \
AfxMessageBox(g_szDebugBuffer); \
} \
//#define _EXCEPT_OUT_ (void)0;
#endif //}!_DBG_OUT
#ifdef _DBG_OUT
#define _CATCH_OUT_ \
{ \
if( !g_pDbgFile ) \
g_pDbgFile = fopen(g_szDbgFile, "a+t" ); \
if( g_pDbgFile ) \
{ \
fprintf ( g_pDbgFile, \
"Except:Line:%4d File:%s\n", \
__LINE__, \
__FILE__ ); \
fclose(g_pDbgFile); \
g_pDbgFile = NULL; \
g_pDbgFile = fopen(g_szDbgFile, "a+t" );\
} \
{ \
sprintf ( g_szDebugBuffer, \
"Except:Line:%4d File:%s\n", \
__LINE__, \
__FILE__ ); \
AfxMessageBox(g_szDebugBuffer); \
} \
}
#else
#define _CATCH_OUT_ \
{ \
sprintf ( g_szDebugBuffer, \
"Except:Line:%4d File:%s\n", \
__LINE__, \
__FILE__ ); \
AfxMessageBox(g_szDebugBuffer); \
} \
//#define _EXCEPT_OUT_ (void)0;
#endif
#endif //__MY_DEBUG_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -