非 MFC DLL の初期化

更新 : 2007 年 11 月

非 MFC DLL を初期化するには、DLL のソース コードに DllMain 関数が含まれている必要があります。次のコードは、DllMain の定義を示す基本的なスケルトンを表しています。

BOOL APIENTRY DllMain(HANDLE hModule, 
                      DWORD  ul_reason_for_call, 
                      LPVOID lpReserved)
{
    switch( ul_reason_for_call ) {
    case DLL_PROCESS_ATTACH:
    ...
    case DLL_THREAD_ATTACH:
    ...
    case DLL_THREAD_DETACH:
    ...
    case DLL_PROCESS_DETACH:
    ...
    }
    return TRUE;
}
3hxxtd06.alert_note(ja-jp,VS.90).gifメモ :

DllEntryPoint についての Windows SDK ドキュメントでの記述によると、リンカ コマンドの /ENTRY スイッチには、エントリ ポイント関数の実際の名前を指定する必要があります。Visual C++ では、エントリ ポイント関数が DllMain である場合は、/ENTRY オプションを使う必要はありません。実際、/ENTRY オプションを使って、DllMain 以外のエントリ ポイント関数を指定する場合、C ランタイム ライブラリは適切に初期化されません。

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

参照

概念

DLL の初期化