Entwickler-Ecke

Dateizugriff - Dynam. laden v. Fkt. aus Dll über Fkt.-Namen


mettie84 - Mi 20.10.04 12:13
Titel: Dynam. laden v. Fkt. aus Dll über Fkt.-Namen
Also ich habe meherere versch. Funktionstypen


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
//Typendeklaration
TMakeRights = function(SecurityLevel: integer; var vRGrant: ShortStr): ShortStr;
TRabatt = function(betrag, satz: integer): integer;

...

//Funktionszeiger
MakeRights: TMakeRights;
Rabatt: TRabatt;


Jetzt möchte ich zum Laden nur eine Function schreiben.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
function ImportSQLFromDll(Name: PAnsiChar; var  <span style="color: red">Proc: ????</span>; ProcHandle: THandle): boolean;
var
  dwError: DWord;
begin

  ProcHandle := LoadLibrary(SQLOperationLib);

  if (ProcHandle <> 0then
  begin
    Proc := GetProcAddress(ProcHandle, Name);
    if not Assigned(Proc) then
      MessageDlg('Die DLL-Funktion "' + Name + '" ist nicht in "' + SQLOperationLib + '" vorhande n oder konnte nicht geladen werden.', mtError, [mbOK], 0);
  end
  else
  begin
    dwError := GetLastError;
    MessageDlg('Fehler beim Laden der Funktion "' + Name +'". Fehlercode: ' + IntToStr(dwError), mtError, [mbOK],0);
  end;
end;


Die rotmarkierte Stelle stellt den Funktionszeiger innerhalb der Importfunktion dar. Welchen Datentyp muss ich hier angeben? Gibt es sowas wie einen "generellen Funktionstyp"?



MfG Matthias


BenBE - Mi 20.10.04 19:50

Ja. var Proc: Pointer :D