в вашей главной функции dll просто обрабатывает случай для DLL_PROCESS_DETACH.
BOOL WINAPI DllMain( HMODULE hDll, DWORD dwReason, PVOID pvReserved ) {
switch ( dwReason ) {
case DLL_PROCESS_DETACH:
// the dll is being detached, do you clean up here
break;
}
}
Имейте в виду, что некоторые вещи невозможны внутри DllMain (), поэтому вы хотите сохранить все, что вы делаете там оченьбыстро и просто.