Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktions-Deklaration in Library (https://www.delphipraxis.net/173691-funktions-deklaration-library.html)

Der schöne Günther 11. Mär 2013 13:00

Delphi-Version: XE2

Funktions-Deklaration in Library
 
Liebe Gemeinde,

ich bekomme es nicht gebacken, in einer
Delphi-Quellcode:
library
die Prototypen der Methoden vor der Implementierung bekanntzugeben.

Delphi-Quellcode:
library Project1;

uses
[...]

procedure eins();
begin
   //
end;

Nach dem
Delphi-Quellcode:
uses
geht es schon direkt los. Ich finde keinen Punkt, wo ich ganz harmlose Deklarationen der Methoden unterbringen könnte. :oops:

Wer kann mir helfen?

mkinzler 11. Mär 2013 13:09

AW: Funktions-Deklaration in Library
 
Es ist alles intern, was nicht explizit exportiert wird.

Delphi-Quellcode:
library Project1;

uses

{$R *.res}

procedure test();
begin
  //
end;

exports test;

begin
end.

DeddyH 11. Mär 2013 13:12

AW: Funktions-Deklaration in Library
 
Und nicht vergessen, ggf. die Aufrufkonvention mit anzugeben, zumindest sofern die Library sprachunabhängig sein soll.

Der schöne Günther 11. Mär 2013 13:22

AW: Funktions-Deklaration in Library
 
Nein, nein.

Mir geht nicht um das Exportieren der Funktionen aus der dll heraus (und dementsprechend auch nicht um die entsprechenden Aufrufkonventionen).

Möchte ich eine Funktion in der dll aus einer anderen Funktion heraus benutzen muss sie bis dahin natürlich schon bekannt sein. Und ständig mit der Reihenfolge der Methoden zu spielen dass sie in der "richtigen" Reihenfolge implementiert werden macht auf Dauer keinen großen Spaß 8-)

Ich möchte nur die Funktionsprototypen irgendwo unterbringen um in der dll damit vernünftig arbeiten zu können...

mkinzler 11. Mär 2013 13:23

AW: Funktions-Deklaration in Library
 
Es gibt in einer Bibliothek kein interface/implementationen

Nottfals per forward deklarieren

DeddyH 11. Mär 2013 13:26

AW: Funktions-Deklaration in Library
 
Delphi-Quellcode:
uses
  SysUtils,
  Classes;

{$R *.res}

function Func1: integer; forward;
function Func2: integer; forward;

function Add: integer;
begin
  Result := Func1 + Func2;
end;

function Func1: integer;
begin
  Result := 1;
end;

function Func2: integer;
begin
  Result := 2;
end;
[edit] Roter Kasten mal wieder im Urlaub, Markus war schneller (dafür ich ausführlicher, immerhin) [/edit]

Der schöne Günther 11. Mär 2013 13:28

AW: Funktions-Deklaration in Library
 
Delphi-Quellcode:
forward
ist das Zauberwort, ich bedanke mich.:thumb:

Sir Rufo 11. Mär 2013 14:08

AW: Funktions-Deklaration in Library
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1206931)
Delphi-Quellcode:
forward
ist das Zauberwort, ich bedanke mich.:thumb:

Allerdings habe ich hier nirgendwo eine Methode gesehen nur einfache Proceduren.
Methoden gibt es nur innerhalb von Klassen ;)

CCRDude 11. Mär 2013 15:59

AW: Funktions-Deklaration in Library
 
Meine Meinung: angesichts der Tatsache, dass man mit ner library eh nur schlecht bis gar nicht direkte Unit-Tests durchführen kann (nur Unit-Tests der die DLL einbindenden Unit), gehören Funktionen eigentlich eh in eine separate Unit, die dieses Problem dann gar nicht kennt :)

Der schöne Günther 11. Mär 2013 16:08

AW: Funktions-Deklaration in Library
 
Werde ich auf lange Sicht wahrscheinlich sowieso tun, aber immerhin kenne ich jetzt ein neues Delphi-Schlüsselwort :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 Uhr.

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