Moin hab grad probiert eine Form folgendermaßen in eine
DLL zu quetschen:
Delphi-Quellcode:
function KarteiAdmin(parent: Pointer;nr:integer;
curUserID:integer): boolean;
stdcall;
begin
try
AdminKartei(parent,patnr);
finally
end;
end;
function AdminKartei(parent: Pointer;
nr:integer):boolean;
begin
if Assigned(parent)
then
begin
ShowMessage('
geht los');
frmKarteiAdmin := TfrmKarteiAdmin.Create(
nil);
try
frmKarteiAdmin.SetParent(parent);
frmKarteiAdmin.ibtr.DefaultDatabase :=
db;
frmKarteiAdmin.SetPatnr(patnr);
frmKarteiAdmin.ShowModal;
finally
frmKarteiAdmin.Free;
end;
end
end;
procedure TfrmKarteiAdmin.FormCreate(Sender: TObject);
var
pc: PChar;
begin
// Modul anzeigen
GetMem(pc, MAX_PATH);
if Assigned(pc)
then
try
ZeroMemory(pc, MAX_PATH);
GetModuleFileName(hInstance, pc, MAX_PATH);
showmessage(
string(pc));
finally
FreeMem(pc);
end
else
showmessage('
Konnte Modulnamen nicht ermitteln.');
end;
das ganze lass ich dann so wieder aufrufen:
Delphi-Quellcode:
function CheckKartei:boolean;
//addieren(zahl1, zahl2: integer): integer;
var KarteiAdmin: TKarteiAdmin;
Handle: THandle;
begin
Handle:=LoadLibrary(PChar(ExtractFilePath(ParamStr(0))+'
daKarteiAdmin.dll'));
if Handle <> 0
then begin
@KarteiAdmin := GetProcAddress(
Handle, '
KarteiAdmin');
if @KarteiAdmin <>
nil
then result:=KarteiAdmin(
nil,1,0);
try FreeLibrary(
Handle);
except end;
end;
end;
Mein Problem ist das beim Aufruf das Form nicht angezeigt wird und beim FreeLibrary gibts ne
Exception...
Kann mir jemand sagen wo das Problem liegt
?