program關閉win下異常時提示錯誤窗口的方法

轉自 : 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(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!而後就返回。 .net

    vs2008 去掉編譯選項 去掉/EHsc的方法是 : Properties->C/C++->Code Generation->Enable C++ Exceptions 關閉便可。 code

    相關文章
    相關標籤/搜索