Delphi-Quellcode:
procedure PluginMain(Befehl : PChar; Parameter : Pointer);
var Plugin: TPlugin;
Handle: THandle;
begin
Handle:=LoadLibrary(PChar(ExtractFilePath(ParamStr(0))+'
..\lib\kundendaten.dll'));
if Handle <> 0
then begin
@Plugin := GetProcAddress(
Handle, '
PluginMain');
if @Plugin <>
nil then begin
Plugin(Befehl, Parameter);
end;
FreeLibrary(
Handle);
end;
end;
Da liegt dein Problem. Deine Plugin-Routine macht nichts anderes als das Formular zu Erzeugen und anzuzeigen (im Speicherbereich der
DLL). Danach springt sie zurück und du gibst die
DLL frei (und damit auch das Formular). Was soll er also noch anzeigen ?
Formulare in
DLL's ist eh eine sehr kritische Sache (such mal hier in der
DP nach den Stichwörtern Plugin und Form).