MFC9(VC2008)に対してアプリケーションが構築されています。 アプリケーションはSDIアプリケーションで、InitInstance()中にファイルを開くダイアログを表示します。そのダイアログを表示すると、comdlg32.dllがロードされます。数分後、comdlg32.dllが自動的にアンロードされます。その後、DLLに依存する次の関数がクラッシュします。アンロードされたcomdlg32.dllによって引き起こされたMFC SDIアプリケーションのクラッシュを回避するにはどうすればよいですか?
これをどのように回避できますか? DLLの自動アンロード/ロードを制御するものは何ですか?
さらに詳細:
- 私たちは、同じアプリケーションでWinXPの上で、この問題は表示されません。
- Win7では、この現象は今年の初めからのみ発生しました - 多分一部のMFCアップデートはこれに関連していますか?
- 小さなテストアプリケーションでは問題が発生しません.comdlg32.dllは必要なときに再ロードされます。
- MDIアプリケーション(http://support.microsoft.com/kb/173261)のInitInstance()でモーダルダイアログを使用することは推奨されていません.SDIアプリケーションがあり、しかし、。
- comdlg32.dllを直接使用するのではなく、MFC経由でのみ間接的に使用します。
いいえ、ファイルダイアログはカスタマイズされていません。 AfxOleInit()が存在します。 – stmoebius
さて、少なくとも、bVistaStyleがFALSEに設定されていることを確認して、それが何らかの効果を持つかどうかを確認したいと思います。 –