Wyładowanie z pamięci obcej biblioteki DLL

0

Na początku powiem że wiem jak ładować i zwalniać własne biblioteki przez LoadLibrary i FreeLibrary tylko że w tym przypadku mam możliwość pobrania Instance biblioteki potrzebne do zwolnienia z pamięci. Mam inny problem. Korzystam z komponentu IdSSLIOHandlerSocket z pakietu Indy który to potrzebuje do poprawnego działania 2 dodatkowe biblioteki libeay32.dll i ssleay32.dll. Komponent automatycznie je ładuje (dynamicznie bo tylko wtedy kiedy wcisne buttona) ale już do końca trwania aplikacji nie wyładowuje, a po wykonaniu funkcji potrzebuje te biblioteki przenieść/usunąć i wywala mi błąd że pliki są używane mimo że komponent IdSSLIOHandlerSocket wykonał swą powinność. Próbowałem wszystkich procedur z nazwą "Free" "Clean" "Disconnect" jakie ma w sobie IdSSLIOHandlerSocket ale albo kończyło sie niczym albo błędem. Ma ktoś jakiś pomysł?

0

A próbowałeś:

hLib:= GetModuleHandle('Nazwa biblioteki');
FreeLibrary(hLib);
0

Dalej nie moge usunąć tej biblioteki :-/

0

Czy GetModuleHandle() zwraca prawidłową wartość (różną od 0)? Jeśli zwraca 0, to jaki jest błąd (GetLastError())?

Czy FreeLibrary() zwraca True? Jeśli nie, to jaki jest błąd?

Czy po wywołaniu FreeLibrary() ponowne wywołanie GetModuleHandle() zwraca 0?

0

Teraz działa! Widocznie na początku o czymś zapomniałem. Dzięki wszystkim [browar] :d

1 użytkowników online, w tym zalogowanych: 0, gości: 1