Beiträge durchsuchen

DLLs

Einbinden zum Ladezeitpunkt

Beginnen wir also mit der Einbindung zum Ladezeitpunkt.
Dazu legen wir in unserem Projekt am besten eine neue Unit an (wiederum über das Menü Datei/Neu…) und deklarieren unsere neue Funktion, als ob wir sie ganz normal direkt in die Unit eintippen würden:

unit Unit1;

interface
  function addiere(zahl1, zahl2: integer): integer; stdcall;

implementation

function addiere(zahl1, zahl2: integer): integer; stdcall;
external 'rechnen.dll';

end.

Im Implementationsteil schreiben wir statt der eigentlichen Funktion aber nur noch „external“ gefolgt von dem Namen der DLL. Die DLL sollte sich dazu im gleichen Verzeichnis wie die Anwendung befinden. Sollen mehrere Anwendungen aus verschiedenen Verzeichnissen auf eine DLL zugreifen können, ist sie am besten im System-Verzeichnis (z.B. C:WindowsSystem) aufgehoben.
Verwendet wird die Funktion anschließend ganz normal. Überall, wo obige Unit „Unit1“ über „uses“ eingebunden ist, kann geschrieben werden:

x := addiere(12, 3);

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.