Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion in .dll aufrufen? (https://www.delphipraxis.net/35977-funktion-dll-aufrufen.html)

freak4fun 14. Dez 2004 12:02


Funktion in .dll aufrufen?
 
Hallo,
kann ich in einer .dll eine function aufrufen die in der .dll ist? Wenn ja, wie?

[in .dll]
Delphi-Quellcode:
function 1..; stdcall;
begin
  function 2;
end;

function2..
begin
  aktion;
end;

export
  function1;

ende
mfg
freak

[edit=Luckie]Delphi-Tags. Beim nächsten mal bitte selber setzten. Mfg, Luckie[/edit]

Luckie 14. Dez 2004 12:07

Re: Funktion in .dll aufrufen?
 
Klar. Geht genauso, wie in jeder anderen Quellcode Unit auch.

freak4fun 14. Dez 2004 12:18

Re: Funktion in .dll aufrufen?
 
Delphi-Quellcode:
uses
  SysUtils,
  Classes;

{$R *.res}

function Funktion1(Zahl: Integer): Boolean; stdcall;
begin
  if Funktion2(1) then <== Undiclared Identifayer: Funktion2
    Result := True;
end;

exports
  Funktion1;

function Funktion2(Zahl: Integer): Boolean; stdcall;
begin
  if Zahl = 1 then
    Result := true
  else
    Result := false;
end;
Was mach ich falsch?

Ultimator 14. Dez 2004 12:19

Re: Funktion in .dll aufrufen?
 
Zu dem Zeitpunkt, an dem du in Funktion 1 die Funktion 2 aufrufen willst, kennt der Compiler die Funktion 2 noch nicht.
Du musst die Reihenfolge vertauschen

freak4fun 14. Dez 2004 12:21

Re: Funktion in .dll aufrufen?
 
Jo, geht. Danke!

mfg
freak

jim_raynor 14. Dez 2004 12:32

Re: Funktion in .dll aufrufen?
 
Oder du arbeites[/delphi]t mit forward-Deklarationen, wenn sich die FUnktionen zum Beispiel gegenseitig aufrufen:

Delphi-Quellcode:
function 2...;forward;

function 1..; stdcall;
begin
  function 2;
end;

function function2..
begin
  aktion;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 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