转自 : windows
http://blog.csdn.net/ibingow/article/details/7104346 服务器
开发的windows版本服务器Program中,不免发生Crash,而windows的异常提示窗口,让看门狗进程没法做用,所以须要关闭windows的提示。 app
key code : spa
#define CRASH_SILENTLY 1
#if defined(_MSC_VER) && CRASH_SILENTLY
#include <excpt.h>
#define Q_TRY_BEGIN __try {
#define Q_TRY_END }
//EXCEPTION_EXECUTE_HANDLER
#define Q_EXCEPT __except(EXCEPTION_EXECUTE_HANDLER) { \
printf("Shit happens!\n");fflush(NULL); \
return 1;}
#else
#define Q_TRY_BEGIN
#define Q_TRY_END
#define Q_EXCEPT
#endif
int main(int, char**)
{
Q_TRY_BEGIN
int *a = 0;
*a = 0;
Q_TRY_END
Q_EXCEPT
printf("Exiting 0...\n");
fflush(NULL);
return 0;
}
若是把CRASH_SILENTLY定义为0,那么在程序崩溃就会弹出对话框,设为一就只打印Shit happens!而后就返回。 .net
vs2008 去掉编译选项 去掉/EHsc的方法是 : Properties->C/C++->Code Generation->Enable C++ Exceptions 关闭便可。 code