次の方法で共有


レギュラー DLL の初期化

更新 : 2007 年 11 月

レギュラー DLL には CWinApp オブジェクトがあるので、初期化処理と終了処理を MFC アプリケーションと同じ場所で行う必要があります。それは、DLL の CWinApp 派生クラスの InitInstance メンバ関数と ExitInstance メンバ関数です。MFC は、PROCESS_ATTACH および PROCESS_DETACH のために _DllMainCRTStartup によって呼び出される DllMain 関数を提供するので、プログラマ自身が独自の DllMain 関数を書く必要はありません。MFC が提供する DllMain 関数は、DLL の読み込み時に InitInstance を呼び出し、DLL がアンロードされる前に ExitInstance を呼び出します。

レギュラー DLL は、InitInstance 関数の中で TlsAllocTlsGetValue を呼び出すことによって、複数のスレッドを追跡できます。これらの関数を使うと、DLL はスレッド固有のデータを追跡できます。

MFC と動的にリンクするレギュラー DLL では、MFC OLE、MFC データベース (DAO)、MFC ソケットのサポートのいずれかを使う場合は、それぞれ、MFC デバッグ拡張 DLL の MFCOxxD.dll、MFCDxxD.dll、MFCNxxD.dll (xx はバージョン番号) が、自動的にリンクされます。レギュラー DLL の CWinApp::InitInstance で使用するこれらの各 DLL に対して、以下の定義済みの初期化関数を呼び出す必要があります。

MFC のサポート タイプ

呼び出す初期化関数

MFC OLE (MFCOxxD.dll)

AfxOleInitModule

MFC データベース (MFCDxxD.dll)

AfxDbInitModule

MFC ソケット (MFCNxxD.dll)

AfxNetInitModule

目的に合ったトピックをクリックしてください

さらに詳しくは次のトピックをクリックしてください

参照

概念

DLL の初期化