1. 程式人生 > >CFileDialog類無故崩潰的解決及原因分析

CFileDialog類無故崩潰的解決及原因分析

在最簡單的MFC對話方塊應用程式裡使用CFileDialog物件開啟檔案對話方塊。第一次開啟都正常,每當第二次調出開啟對話方塊後,只要滑鼠在檔案上晃動下就會崩潰,偵錯程式斷在shell32.dll模組裡。顯示Unhandled exception in test.exe (SHELL32.DLL): 0xC0000005 Access Voilation. 但是換成虛擬機器或其他機器又會好。經過進一步除錯,發現是Adobe Acrobat的一個元件使用了Shell擴充套件程式設計導致的。這個原因查了半天,所以特意記錄在這,以免以後忘記了。解決方法很簡單在應用程式類CWinApp的InitInstance函式中呼叫一下AfxOleInit();就好了。