#if defined (_MT) || defined (_DLL)
# define ExceptionPtr ((long **)__pxcptinfoptrs())
#else
# define ExceptionPtr ((long *)_pxcptinfoptrs)
#endif#if defined (_MT) || defined (_DLL)
#define LogExceptionAny(whereFile, whereLine) {\
char buff[256] = { 0 };\
strcpy(buff, "Catch Exception ");\
char bufftemp[256] = { 0 };\
if ( *(ExceptionPtr) ) {\
(void)sprintf(bufftemp,"P0: %08x ", (**(ExceptionPtr)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+1) ) {\
(void)sprintf(bufftemp,"P1: %08x ", (**(ExceptionPtr+1)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if (*(ExceptionPtr+2)) {\
(void)sprintf(bufftemp,"P2: %08x ", (**(ExceptionPtr+2)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+3) ) {\
(void)sprintf(bufftemp,"P3: %08x ", (**(ExceptionPtr+3)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+4) ) {\
(void)sprintf(bufftemp,"P4: %08x ", (**(ExceptionPtr+4)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+5) ) {\
(void)sprintf(bufftemp,"P5: %08x ", (**(ExceptionPtr+5)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+6) ) {\
(void)sprintf(bufftemp,"P6: %08x ", (**(ExceptionPtr+6)) );\
strncat (buff, bufftemp, strlen(bufftemp)); }\
__LogException(buff,whereFile,whereLine);\
}#else
# define ExceptionPtr ((long **)__pxcptinfoptrs())
#else
# define ExceptionPtr ((long *)_pxcptinfoptrs)
#endif#if defined (_MT) || defined (_DLL)
#define LogExceptionAny(whereFile, whereLine) {\
char buff[256] = { 0 };\
strcpy(buff, "Catch Exception ");\
char bufftemp[256] = { 0 };\
if ( *(ExceptionPtr) ) {\
(void)sprintf(bufftemp,"P0: %08x ", (**(ExceptionPtr)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+1) ) {\
(void)sprintf(bufftemp,"P1: %08x ", (**(ExceptionPtr+1)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if (*(ExceptionPtr+2)) {\
(void)sprintf(bufftemp,"P2: %08x ", (**(ExceptionPtr+2)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+3) ) {\
(void)sprintf(bufftemp,"P3: %08x ", (**(ExceptionPtr+3)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+4) ) {\
(void)sprintf(bufftemp,"P4: %08x ", (**(ExceptionPtr+4)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+5) ) {\
(void)sprintf(bufftemp,"P5: %08x ", (**(ExceptionPtr+5)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+6) ) {\
(void)sprintf(bufftemp,"P6: %08x ", (**(ExceptionPtr+6)) );\
strncat (buff, bufftemp, strlen(bufftemp)); }\
__LogException(buff,whereFile,whereLine);\
}#else
解决方案 »
- 双缓冲的问题,主要是双缓冲+背景,为什么绘图过程显示不了?
- 怎么把截屏得到的bitmap转换为jpeg?
- 晕了,哪位兄弟在用WTL?
- 系统消息,应用程序产生的消息和窗口消息,命令消息,通知消息之间的关系是什么
- DECLARE_DYNAMIC是干什么呢?
- 声明函数参数时,怎么不能几个参数一起声明? func(int a,int b) 怎么不能为 func(int a,b) ?
- 请各位看一下下面是什么错误啊,入门级的Winsock编程.
- 为什么FindResource返回的总是NULL?
- 相同代码写在这2个函数里为什么效果会不一样?
- 永哪个函数可使xml直接到DOM?谢谢!!
- 上班十多天了,一直没来散分
- 请教各位一个问题,谢谢了。这是一个很简单的程序,但是有错误不知道怎么改,各位帮我看看!
#if defined (_MT) || defined (_DLL)
# define ExceptionPtr ((long **)__pxcptinfoptrs())
#endif#if defined (_MT) || defined (_DLL)
#define LogExceptionAny(whereFile, whereLine) {\
char buff[256] = { 0 };\
strcpy(buff, "Catch Exception ");\
char bufftemp[256] = { 0 };\
if ( *(ExceptionPtr) ) {\
(void)sprintf(bufftemp,"P0: %08x ", (**(ExceptionPtr)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+1) ) {\
(void)sprintf(bufftemp,"P1: %08x ", (**(ExceptionPtr+1)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if (*(ExceptionPtr+2)) {\
(void)sprintf(bufftemp,"P2: %08x ", (**(ExceptionPtr+2)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+3) ) {\
(void)sprintf(bufftemp,"P3: %08x ", (**(ExceptionPtr+3)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+4) ) {\
(void)sprintf(bufftemp,"P4: %08x ", (**(ExceptionPtr+4)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+5) ) {\
(void)sprintf(bufftemp,"P5: %08x ", (**(ExceptionPtr+5)) );\
strncat (buff, bufftemp, strlen(bufftemp));\
memset(bufftemp, 0, sizeof(bufftemp)); }\
if ( *(ExceptionPtr+6) ) {\
(void)sprintf(bufftemp,"P6: %08x ", (**(ExceptionPtr+6)) );\
strncat (buff, bufftemp, strlen(bufftemp)); }\
__LogException(buff,whereFile,whereLine);\
}
#endif
我在google和baidu上搜索竟然也找不到中文方面的资料
我不明白那些ExceptionPtr+5,ExceptionPtr+6是啥意思