2009-03-26 8 views
1

MFC 8.0用の缶詰のDllMainは、DLL_PROCESS_DETACHを取得したときにExitInstanceを呼び出すようには見えません。 1つの可能な解決策は、私自身のDllMainを定義することですが、MFCではなく私のリンカーにリンカーにどのように伝えるべきですか?MFCはDllMainでDLL_PROCESSS_DETACHのExitInstanceを呼び出すことはできませんか?

または、DLL_PROCESS_DETACHで呼び出される別のオーバーライドがありますかわかりません。

答えて

1

私は/ clrでコンパイルされたプロジェクトで同様の問題が発生しています。あなたは同じ状況にいますか?私はそれを特定の状態まで追跡することはできませんでしたが、いくつかの静的初期化子を変更してnullを設定すると、それをクリアしました。静的デストラクタが登録されている順序と関係があると思います。

+0

これは/ clrでコンパイルされます。私は明日これを確かにチェックしなければならないでしょう。 – Nick

0

ExitInstanceが呼び出されない理由はわかりませんが、MFCのdllmodul.cppファイルの内容をDLLのファイルにコピーして、必要な機能を追加することで、独自のDllMainを定義することは可能です。手順はthis MS knowledge base articleに記載されています。 MFC 4.0用に書かれていましたが、私はこのメソッドをMFC 8.0を使用するアプリケーションに使用しました。

関連する問題