CFileDialog类无故崩溃的解决及原因分析

来源:互联网 发布:python web flask 编辑:程序博客网 时间:2024/05/16 16:29

在最简单的MFC对话框应用程序里使用CFileDialog对象打开文件对话框。第一次打开都正常,每当第二次调出打开对话框后,只要鼠标在文件上晃动下就会崩溃,调试器断在shell32.dll模块里。显示Unhandled exception in test.exe (SHELL32.DLL): 0xC0000005 Access Voilation. 但是换成虚拟机或其他机器又会好。经过进一步调试,发现是Adobe Acrobat的一个组件使用了Shell扩展编程导致的。这个原因查了半天,所以特意记录在这,以免以后忘记了。解决方法很简单在应用程序类CWinApp的InitInstance函数中调用一下AfxOleInit();就好了。