非 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 ランタイム ライブラリは適切に初期化されません。