Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Function in DLL auslagern (https://www.delphipraxis.net/85355-function-dll-auslagern.html)

Christian18 29. Jan 2007 18:57


Function in DLL auslagern
 
Hallo,

ich soll eine function und eine procedure in eine DLL auslagern. Habe aber keine Ahnung davon wie ich das machen soll. Kann mir jemand helfen???

hier mal die function.
Delphi-Quellcode:
function Rechne(a, b : Integer) : Integer;
begin
  Result:=a + b;
end;

BUG 29. Jan 2007 19:17

Re: Function in DLL auslagern
 
Hallo,

probiere mal Datei -> Neu und wähle DLL

die Funktionen, die du vom Programm aus aufrufen möchtest, musst du unter exports kennzeichnen.

So sieht das z.B. aus:

Delphi-Quellcode:
library Project1;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muß die
  erste Unit im Uses-Anweisungsteil des Interface-Abschnitts Ihrer
  Unit sein, wenn Ihre DLL Prozeduren oder Funktionen exportiert, die
  String-Parameter oder Funktionsergebnisse übergeben. Dies gilt für
  alle Strings die an und von Ihrer DLL übergeben werden --  selbst
  für diese, die in Records oder Klassen verschachtelt sind. ShareMem
  ist die Schnittstellen-Unit zur DELPHIMM.DLL, welche Sie mit Ihrer
  DLL weitergeben müssen. Um die Verwendung von DELPHIMM.DLL zu
  vermeiden, übergeben Sie String-Parameter unter Verwendung von
  PChar- oder ShortString-Parametern. }

uses
  SysUtils,
  Classes;

function Rechne(a, b : Integer) : Integer;
begin
  Result:=a + b;
end;

exports
      Rechne name 'Rechne';

begin
end.
Importiert wird im Programm mit folgender Definition:

Delphi-Quellcode:
Rechne(a, b : Integer) : Integer; external 'Project1' name 'Rechne';
Weiteres z.B. das dynamische Einbinden von DLLs findest du in der Delphi-Hilfedatei ...

Viel Spaß beim Auslagern,

Bug

semo 29. Jan 2007 19:33

Re: Function in DLL auslagern
 
heir gibts nen schönes tutorial dazu: http://dsdt.info/tutorials/dlls/


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz