我正在使用Visual Studio 2010在C++上開發一個軟件。由於這個軟件應該在沒有人工交互的服務器上運行,我真的需要擺脫這個「program.exe已停止工作「在發佈錯誤的情況下彈出窗口。我只是希望程序終止(也許還會給出錯誤消息,但不一定),並且不會阻止程序等待某人單擊「關閉程序」按鈕。我不得不提,我的機器上有64位Windows 7專業版。如何在Windows上以發佈模式避免「program.exe已停止工作」窗口?
我看了一下幾件事情,如:
的_set_abort_behavior功能。這解決了調用abort()時的情況,但對於像「矢量下標超出範圍」之類的錯誤,情況並非如此。
我知道我可以通過做異常處理來解決其中的一些錯誤,但並非所有的錯誤都是異常,因此這並不能解決我的整個問題。
我也讀了一些關於Dr.Watson調試器的消息,它應該是默默地終止應用程序,但我的印象是這個調試器不適用於Windows 7.另外我不知道這個調試器將解決我的問題在釋放模式...
我不覺得在我的整個機器上禁用錯誤報告是一個優雅的選擇,雖然我讀了這也可以是一個替代品(不是真的我要拿)。
如何在Visual Studio中執行此操作?有沒有我可以使用的設置?
是否有辦法在Visual Studio中打開異常中的所有錯誤,以便我可以解決異常處理機制的問題? (如果這是一個愚蠢的問題,請耐心等待)
我期待着您的建議。非常感謝您的時間!
最好的問候, 科妮莉亞
最好的辦法是首先擺脫造成事故的任何事物。 – chris 2012-07-19 11:02:42
「我還讀過一些關於Dr.Watson調試器的信息,這個調試器應該靜靜地終止應用程序」 - 這對於調試器來說是「特殊的」用法(我從來沒有聽說過這種用法,調試器可以自動啓動以防萬一應用程序崩潰)。當然不適用於發佈模式。 – SChepurin 2012-07-19 11:24:49
@Chris:這是一個明顯的答案!但實際的問題是,當應用程序在某個服務器上運行並遇到錯誤並崩潰時,它仍然是掛起的,我不知道它是否實際上仍在運行或停滯(不實現某種依賴於平臺的觀察器後端系統,這不是我想要的!)。所以我寧願應用程序在包含錯誤後關閉,然後我可以檢查日誌文件,看到它意外停止工作,所以我會知道我有一個問題。 – 2012-07-19 15:13:02