У нас есть приложение, созданное против MFC9 (VC2008). Приложение является SDI-приложением и показывает диалог открытия файла во время InitInstance(). Отображение этого диалогового окна вызывает загрузку comdlg32.dll. Через несколько минут файл comdlg32.dll будет выгружен автоматически. После этого следующая функция, зависящая от DLL, выйдет из строя.Как избежать сбоя в приложении MFC SDI, вызванном разгруженным comdlg32.dll?
Как этого можно избежать? Что определяет автоматическую разгрузку/загрузку DLL?
Дополнительная информация:
- Мы не видим эту проблему на WinXP с тем же приложением.
- В Win7 это поведение произошло только с начала этого года - возможно, какое-то обновление MFC связано с этим?
- Небольшое тестовое приложение не проявляет проблемного поведения - comdlg32.dll перезагружается при необходимости.
- Мы нашли заявление Microsoft о том, что не рекомендуется использовать модальные диалоги в InitInstance() приложений MDI (http://support.microsoft.com/kb/173261) - у нас есть приложение SDI, хоть.
- Мы не используем comdlg32.dll напрямую, только косвенно через MFC.
Нет, диалоговое окно файла не настроено. AfxOleInit() присутствует. – stmoebius
Ну, я бы хотя бы попытался убедиться, что для bVistaStyle установлено значение ЛОЖЬ и посмотрите, не имеет ли это никакого эффекта. –