Home » Tutorials » Object Pascal/RTL » DLLs
DLLs
Einbinden zur Laufzeit (2)
Nun hat sich also folgende Unit ergeben:
unit Unit1; interface uses windows; type TSummenFunktion = function(zahl1, zahl2: integer): integer; stdcall; function addieren(zahl1, zahl2: integer): integer; implementation function addieren(zahl1, zahl2: integer): integer; var SummenFunktion: TSummenFunktion; Handle: THandle; begin Handle:=LoadLibrary(PChar(ExtractFilePath(ParamStr(0))+'rechnen.dll')); if Handle <> 0 then begin @SummenFunktion := GetProcAddress(Handle, 'addiere'); if @SummenFunktion <> nil then begin result := SummenFunktion(zahl1, zahl2); end; FreeLibrary(Handle); end; end; end.
Auf den ersten Blick ersichtlich, dass die Einbindung zur Laufzeit etwas aufwändiger ist als die zum Programmstart. Allerdings hat sie – wie erwähnt – auch ihre Vorteile.
Jetzt fehlt nur noch eins: Was bedeutet der große Hinweis, der im automatisch erzeugten DLL-Grundgerüst stand?
Ein Gedanke zu „DLLs“
Kommentare sind geschlossen.
Hi,
danke für das nette Tutorial.
Aber windows alleine reicht bei mir im uses Abschnitt nicht aus. Ich muss noch SysUtils hinzufügen damit es läuft. Ohne SysUtils kommt diese Fehlermeldung: [DCC Fehler] Unit3.pas(17): E2003 Undefinierter Bezeichner: ‚ExtractFilePath‘