日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何让程序异常退出后重启

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何让程序异常退出后重启 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

標 題:如何讓程序異常退出后重啟
發信人:蔡子楠
出處:http://www.freeeim.com/
時 間:2008-02-14 11:25:22

???? “程序 FreeEIM.exe 遇到問題異常退出,是否重啟?”,類似的情況我們似乎碰見過,很多程序都有這個功能;這是怎么實現的呢?經過一番努力,在MSDN找到了SetUnhandledExceptionFilter函數,利用它,可以實現這個功能。其實這個過程叫做SEH("Structured Exception Handling")結構化異常處理。是操作系統提供給程序設計者的強有力的處理程序錯誤或異常的武器。我在這里簡單的說一下如何使用,如有錯誤,請高手不吝指正。

???? 有了它,太好了。要是你的程序無緣無故蕩掉了,你可以利用它,幫你的程序重啟。

一,處理函數
程序在出現異常時,會調用這個函數,我們就在這里處理程序蕩后的所有事,包括重啟。
原型:LONG WINAPI FreeEIM_UnhandledExceptionFilter(LPEXCEPTION_POINTERS ExceptionInfo);
我們這里先簡單試驗一下。

LONG WINAPI FreeEIM_UnhandledExceptionFilter(LPEXCEPTION_POINTERS ExceptionInfo)
{
??? MessageBox(NULL,"FreeEIM","FreeEIM",MB_OK);
??? return EXCEPTION_EXECUTE_HANDLER;
}// 此代碼可以 COPY - PASTE 使用。

然后在OnInitDialog()里加入:

SetUnhandledExceptionFilter(FreeEIM_UnhandledExceptionFilter);// 此代碼可以 COPY - PASTE 使用。
int *i=0;// 此代碼可以 COPY - PASTE 使用。
*i=0;// 此代碼可以 COPY - PASTE 使用。

編譯看看有什么結果。

二,如何重啟
重啟也不難,這里我們用到一個函數WinExec,函數比較常用,不熟悉的上GOOGLE找一下。

LONG WINAPI FreeEIM_UnhandledExceptionFilter(LPEXCEPTION_POINTERS ExceptionInfo)
{
??????? char szFileName[_MAX_PATH];
??????? ::GetModuleFileName(NULL, szFileName, _MAX_PATH);
??????? if ( MessageBox(NULL,"程序 FreeEIM.exe 遇到問題異常退出,是否重啟?","FreeEIM",MB_YESNO)
??????????????? == IDYES )
??????????????? WinExec(szFileName, SW_SHOW);

??? return EXCEPTION_EXECUTE_HANDLER;
}// 此代碼可以 COPY - PASTE 使用。

然后在OnInitDialog()里加入:

SetUnhandledExceptionFilter(FreeEIM_UnhandledExceptionFilter);// 此代碼可以 COPY - PASTE 使用。
int *i=0;// 此代碼可以 COPY - PASTE 使用。
*i=0;// 此代碼可以 COPY - PASTE 使用。

編譯一下,一個簡單的異常重啟程序就實現了。


參考文檔

《SEH in ASM 研究》 原文地址:http://www.pediy.com/bbshtml/bbs4/kanxue310.htm
作者:Hume/冷雨飄心

總結

以上是生活随笔為你收集整理的如何让程序异常退出后重启的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。