Vielleicht funktioniert es so
Delphi-Quellcode:
function TTWPluginManager.UnloadAllPlugins: Boolean;
Var
i: Integer;
LHandle: THandle;
LPlugin: ITWPlugin;
begin
for i := FPlugins.Count - 1 downto 0 do
begin
LPlugin := (FPlugins.Items[i] as ITWPlugin);
LHandle := LPlugin.Handle;
LPlugin := Nil;
FPlugins.Delete(i);
FreeLibrary(LHandle)
end;
End
Ich halte noch an der These fest, dass
LHandle := (FPlugins.Items[i] as ITWPlugin).Handle;
den Referenzzähler hochzählt und zu spät wieder herunterzählt.