MFC DLL 内で使用できない MFC クラスまたは関数

更新 : 2007 年 11 月

拡張 DLL は、クライアント アプリケーションの CWinApp 派生クラスを使用します。拡張 DLL は、固有の CWinApp 派生クラスを持てません。

レギュラー DLL には、MFC アプリケーションの場合と同じく、CWinApp 派生クラスと、そのアプリケーション クラスの 1 つのオブジェクトの存在が必要です。ただし、アプリケーションの CWinApp オブジェクトとは異なり、DLL の CWinApp オブジェクトにはメイン メッセージ ポンプがありません。

CWinApp::Run の機構は DLL では使用できないため、アプリケーションはメイン メッセージ ポンプを所有しています。DLL でモードレス ダイアログ ボックスを開く場合、または DLL 固有のメイン フレーム ウィンドウがある場合は、DLL がエクスポートしたルーチンをアプリケーションのメイン メッセージ ポンプで呼び出す必要があります。このルーチンが、DLL のアプリケーション オブジェクトの CWinApp::PreTranslateMessage メンバ関数を呼び出します。

参照

概念

DLL に関してよく寄せられる質問