Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#10

Re: Fehler beim laden einer Funktion aus einer Dll

  Alt 2. Jun 2005, 10:56
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat