次の方法で共有


非 MFC DLL の初期化

非 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;
}

[!メモ]

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

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

参照

概念

DLL の初期化