Sascha, schnapp mal eine Runde frische Luft, dann sieht Du das Problem auch
Du greifst auf die
DLL zu, rufst die Procedure auf und gibst danach die
DLL wieder frei, welche auch die Form in der
DLL zerstört. Auf was sollte bitte gewartet werden?
Du musst auf die
DLL zugreifen und erst später (Programmende?) wieder per FreeLibrary schließen.
[edit]Ich würde Dir noch vorschlagen, eine Klasse zu schreiben, die erstmal alle dlls im Plugin-Ordner in eine Liste einfügt. Sobald dann ein Plugin benötigt wird, lädt die Klasse die
DLL in den Speicher. Bevor nun die
DLL-Form geschlossen wird, sendet diese eine Nachricht an das Hauptprogramm, darauf hin schließt sich die Form und die Klasse gibt per FreeLibrary die
DLL frei. Soweit der theoretische Ansatz. Jetzt ist Dein Grips gefragt.
[/edit]