program关闭win下异常时提示错误窗口的方法

转自 :

http://blog.csdn.net/ibingow/article/details/7104346

开发的windows版本服务器Program中,难免发生Crash,而windows的异常提示窗口,让看门狗进程无法作用,因此需要关闭windows的提示。

key code :

 

  • #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(intchar**)  
  • {  
  • 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!然后就返回。

    vs2008 去掉编译选项 去掉/EHsc的方法是 : Properties->C/C++->Code Generation->Enable C++ Exceptions 关闭即可。

    你可能感兴趣的:(program关闭win下异常时提示错误窗口的方法)