Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prozedur aus fremder Datei zur laufzeit einbinden? (https://www.delphipraxis.net/74250-prozedur-aus-fremder-datei-zur-laufzeit-einbinden.html)

xZise 31. Jul 2006 12:37


Prozedur aus fremder Datei zur laufzeit einbinden?
 
Gibt es eine Möglichkeit eine Funktion aus einer Datei zu nehmen, welche nicht vorhanden sein muss.
Also man hat nur die exe, und dann überrüft die exe, ob die Datei mit der Funktion vorliegt.
Allerdings kann sich der inhalt der Funktion ändern. Sozusagen ein Plugin.

fwsp 31. Jul 2006 12:39

Re: Prozedur aus fremder Datei zur laufzeit einbinden?
 
ja, das ist möglich. das einfachste wär die funktion in eine dll zu schreiben und dann vom hauptprogramm überprüfen zu lassen, ob die da ist...

mkinzler 31. Jul 2006 12:40

Re: Prozedur aus fremder Datei zur laufzeit einbinden?
 
In welcher Form liegt die fremde datei vor? (Dll oder Bpl)

xZise 31. Jul 2006 13:41

Re: Prozedur aus fremder Datei zur laufzeit einbinden?
 
Weiß ich nicht :D

Ich habe mich bisher auch noch nicht auseinandergesetzt.

Aber es soll eben eine Datei mit einer function sein, die ich dann von der exe aus starten kann (also sozusagen laden und dann die func ausführen).

hoika 31. Jul 2006 13:45

Re: Prozedur aus fremder Datei zur laufzeit einbinden?
 
Hallo,

wie weiter oben schon gesagt,
geht das mit einer DLL.

Per LoadLibrary wird die DLL geladen
(Return-Code zeigt an, ob die DLL tatsächlich geladen wurde,
also gefunden wurde).

Per GetProcAddress wird eine DLL-Methode / Funktion gesucht
und kann dann aufgerufen werden.

Im Netz (bzw. Hilfedatei) findest du genug Delphi-Code dazu.


Heiko


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