VC快速強制退出程式方法
阿新 • • 發佈:2018-12-27
轉載自:http://shashanzhao.com/archives/791.html
首先為什麼要快速強制退出應用程式.
1.想快點結束程式,關閉自己,節約時間
2.正常退出時(或者關閉視窗時)崩潰,出來一個對話方塊
“XXX已停止工作,Windows 正在檢查該問題的解決方案…”,一時找不到原因解決,總不能關閉的時候老看見這個框吧.
3.寫的程式碼是給自己用的,不嚴格,所以如果正常退出,會呼叫一大堆解構函式,可能又涉及到多執行緒,必崩潰,這時就不得不考慮用快速簡單粗暴的方法了.
4.快速退出程式沒有多少影響,系統會幫你回收所有東西,所以不用擔心記憶體洩露等, 唯一的影響就是你可能來不及儲存一些視窗的配置,檔案來不及儲存等等了.
轉到正題,目前有以下幾個函式可以快速退出程式.
exit(0) 呼叫全域性或者靜態物件的解構函式然後退出
ExitProcess(0) 呼叫全域性或者靜態物件的解構函式然後退出
abort() 不呼叫全域性或者靜態物件的解構函式,
但在Release下彈出”XXX已停止工作,Windows 正在檢查該問題的解決方案…”,
在Debug下會彈出”Debug Error!…”,不好用
TerminateProcess(GetCurrentProcess(), 0) 不呼叫全域性或者靜態物件的解構函式,乾淨利落的退出,程式設計師的大愛啊
注:
以上函式都會退出程式,忽略區域性物件的析構和後面的程式碼.
就是此函式不會返回,直到程式終止.
總結就是如果碰到關閉時出現崩潰就使用TerminateProcess(GetCurrentProcess(), 0)來退出,哈哈,頓時清爽了.
測試環境:
Window 7,VC(VS/Visual Stdio)2010