我在基於對話框的MFC應用程序中添加了「打開文件」對話框。現在,通過按下「打開」或「取消」按鈕關閉打開文件對話框後,正好一分鐘(!)我的應用程序崩潰。當它崩潰時,輸出中會發生以下情況:CFileDialog延遲崩潰
1)一堆Windows線程正在退出;
2)一堆COM異常(0x80010108「被調用的對象已斷開與其客戶端的連接」和0x800401FD「對象未連接到服務器」變種)正在拋出;
3)最後,發生未處理的異常:0xC0000005:訪問衝突讀取位置0xfeeefeee,調用堆棧指向ole32.dll。
要說我感到困惑是相當輕描淡寫。調用對話框的代碼如下:
CFileDialog fileDlg(TRUE, _T(".txt"), NULL, OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST,
_T("Text file (*.txt)|*.txt||"), this);
INT_PTR res = fileDlg.DoModal();
什麼會導致這樣的事情?
我該如何調試呢?
對話框關閉後,您是否評論過所有事件,以確保它確實是導致此問題的對話框,而不是某個操作處理其結果? – GazTheDestroyer
你可以發佈調用堆棧嗎? – Aesthete
@GazTheDestroyer - 是的,沒有任何事情發生。 – obamator