DLL をアンロードするときに、いくつかのオブジェクトを破棄する必要があります。このオブジェクトには、(接続を再接続するために) WSASocket 関数を呼び出すことがあるスレッドが含まれています。そのため、 に応答して DllMain からデストラクタを呼び出しますDLL_PROCESS_DETACH
が、アプリケーションがハングします。具体的には、WSASocket の呼び出しがロックされます。
一部の関数、特に LoadLibrary と FreeLibrary を呼び出す関数は DllMain から呼び出せないことを知っています。しかし、なぜ WSASocket 関数にも同じ問題があるのでしょうか?