Hallo allerseits,
bei Funktionen klappt das mit Assigned nicht mehr, vor allem wenn die Funktion nur einmal ausgefuehrt werden darf. Deshalb habe ich es so gemacht:
Delphi-Quellcode:
type
TFunc = function(foo: Integer;): TForm; stdcall;
var
ProcAddr: Pointer;
SomeForm: TForm;
begin
//...
ProcAddr := GetProcAddr(hDll, 'someProc');
if not Assigned(ProcAddr) then
begin
//...
exit;
end;
SomeForm := TFunc(ProcAddr)(0);
end;
Wenn man ProcAddr nicht als Pointer sondern direkt als function... deklariert, so wuerde man einen eventuellen Rueckgabewert pruefen. Das heisst, die Funktion wird einmal ausgefuehrt (jedenfalls war das bei mir so). Arbeitet man hingegen mit dem Pointer und castet nachher einfach auf den Funktionstyp, dann sollte es keine Probleme geben.
Greetz
alcaeus