我有一個64位的MFC應用程序,我在其中使用崩潰報告。該方法基於這篇文章: http://www.codeproject.com/KB/debug/XCrashReportPt1.aspx?display=Print 所以我有一個__try - __except包裝框架圍繞AfxWinMain
。 去年它似乎工作得很好(我的意思是在不同的操作系統上,以及32位和64位應用程序)。 讓我們這個異常提供的代碼部分:MFC應用程序異常處理奇怪行爲
void CMyDig::Foo()
{
std::vector<int> v;
int i = v.at(42);
}
當我寫這篇文章的代碼對話框的消息處理程序中,例如則例外AfxWinMain
沒有抓到一個按鈕的函數clickhandler叫富。 如果我將它寫入全局函數,它將例外傳遞給AfxWinMain
。 現在我們有這個奇怪的問題: 在某些計算機上,對話框的情況也會生成崩潰報告(輸入afxwinmain中的__except塊),但其他編號不會。我設法創建了一個關於win7 64位的崩潰報告,但在win8,win8.1和另一個win7 64bit上的相同程序不會生成報告! 我使用vs2010進行編譯,並且在代碼生成選項中,「enable C++ exceptions」被設置爲EHsc(與去年一樣,它運行良好)。
感謝您的任何想法! Attila
謝謝!你指出了正確的方法,它似乎爲我工作!我也使用這個指南:http://www.codeproject.com/Articles/154686/SetUnhandledExceptionFilter-and-the-C-C-Runtime-Li – balazsati