Zitat von
Spider:
das soll jetzt kein Push sein, ich hab was neues rausgefunden.
Und zwar liegt es daran, das ich iPlg nach dem hinzufügen auf nil setze. Wenn ich die Zeile auskommentiere mit dem iPlg := nil; bekomme ich bei FreeLibrary eine Zugriffverletzung.
Ich hab das nun so gelöst, dass ich die hDll public gemacht hab und immer wieder über die hDll neue PlugIns lade und erst im Form.Destroy FreeLibrary(hDll) ausführe. Ich denke das ich zwar nicht sehr sauber, aber bis ich eine andere Lösung habe, wohl das beste...
So sollte das aber auch nicht korrekt funktionieren. Funktioniert nur für das Interface, das zum Schluss über hDLL geladen wurde.
Bei Interfaces ist es, das sie automatisch abgeräumt werden, wenn die letzte Referenz gelöscht wird.
Bei dir ist die einzige Referenz immer nur iPlg gewesen. Durch iPlg:= nil wurden diese Referenzen immer gelöst.