FreeLibrary erzeugt von sich aus aigentlich nur selten eine
Exception.
Wird vielleicht innerhalb der
DLL, beim Entladen, auf etwas anderes zugegriffen, welches zu diesem Zeitpunkt schon entfernt wurde?
Weiß ja nicht, was sonst noch für Code behandelt wird, aber wenn nur die Liste abgearbeitet und alles freigegeben werden soll:
Code:
[s]for index := Libs.Count - 1 downto 0 do
case Libs[index].TheLibKind of
lkBPL: UnloadPackage(Libs[index].TheLibHandle);
lkDLL: FreeLibrary(Libs[index].TheLibHandle);
end;
Libs.Free;[/s]
[edit] seh grad, daß da zwei Listen (Libs und FList) parallel verarbeitet werden