【发布时间】:2012-03-12 14:24:30
【问题描述】:
我们有一个针对 MFC9 (VC2008) 构建的应用程序。 该应用程序是一个 SDI 应用程序,并在 InitInstance() 期间显示一个文件打开对话框。显示该对话框会导致加载 comdlg32.dll。几分钟后,comdlg32.dll 会自动卸载。在此之后,依赖于 DLL 的下一个函数将崩溃。
如何避免这种情况?什么控制着 DLL 的自动卸载/加载?
更多信息:
- 我们在使用相同应用程序的 WinXP 上没有发现此问题。
- 在 Win7 上,这种行为是从今年年初才出现的 - 也许某些 MFC 更新与此有关?
- 小型测试应用程序不会出现问题行为 - comdlg32.dll 会在需要时重新加载。
- 我们发现 Microsoft 声明不建议在 MDI 应用程序的 InitInstance() 中使用模式对话框 (http://support.microsoft.com/kb/173261) - 我们有一个 SDI 应用程序,不过。
- 我们不以任何方式直接使用 comdlg32.dll,仅通过 MFC 间接使用。
【问题讨论】: