Beiträge durchsuchen

DLLs

Der exports-Abschnitt

Nun fügen wir unsere kleine Funktion in das von Delphi vorgegebene DLL-Grundgerüst ein und erhalten dadurch folgenden Code (die Kommentarzeilen wurden entfernt):

library Project1;

uses
  SysUtils,
  Classes;

{$R *.RES}

function addiere(zahl1, zahl2: integer): integer; stdcall;
begin
  result:=zahl1+zahl2;
end;

begin

end.

In einer normalen Unit müsste der Funktionsname jetzt noch in einem Interface-Teil eingefügt werden. Bei DLLs funktioniert das etwas anders. Funktionen bzw. Prozeduren, die von außen – also aus einer anderen Anwendung – ansprechbar sein sollen, müssen in einem exports-Abschnitt bekanntgegeben werden, allerdings nur mit ihrem Namen, nicht mit evtl. Parametern. Dieser Abschnitt befindet sich in der Regel am Ende der DLL. Wenn wir weitere Funktionen benötigen würden, um unser Ergebnis zu berechnen, die aber nicht von außen direkt aufgerufen werden sollten, müssten diese auch nicht im exports-Abschnitt stehen.
Komplett sieht unsere DLL also folgendermaßen aus:

library Project1;

uses
  SysUtils,
  Classes;

{$R *.RES}

function addiere(zahl1, zahl2: integer): integer; stdcall;
begin
  result := zahl1+zahl2;
end;

exports
  addiere;

begin

end.

Jetzt speichern wir die Datei unter dem Namen rechnen.dpr. Beim Kompilieren (Strg+F9) entsteht dann unsere DLL, rechnen.dll.

1 Kommentar zu DLLs

  1. 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‘

Kommentare sind geschlossen.