Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   *.dll zur Laufzeit erzeugen (https://www.delphipraxis.net/179405-%2A-dll-zur-laufzeit-erzeugen.html)

Luki206 5. Mär 2014 14:57

*.dll zur Laufzeit erzeugen
 
Hi, gibt es die Möglichkeit eine *.DLL zur Laufzeit zu erstellen? Diese DLL sollte eigentlich nur einen Verweis auf eine *.res Datei haben also im Grunde als Ressourcen-DLL fungieren.
Danke
Luki :)

Perlsau 5. Mär 2014 14:59

AW: *.dll zur Laufzeit erzeugen
 
Du möchtest zur Laufzeit deines Programms einen DLL-Quellcode erstellen und kompilieren? Wozu soll das gut sein?

Luki206 5. Mär 2014 15:06

AW: *.dll zur Laufzeit erzeugen
 
Weiß ich selbst nicht nur mir ist langweilig und da habe ich mal ein bisschen rumspielen wollen ;) Aber an deiner Frage lässt man erkennen dass das so nicht geht wie ich es mir gerade denke

Perlsau 5. Mär 2014 15:08

AW: *.dll zur Laufzeit erzeugen
 
Geht schon: Du erstellst die DLL, speicherst sie ab und rufst dann den Compiler auf. Sinn macht das aber irgendwie nicht.

Wieso nimmst du dir nicht lieber ein sinnvolles Projekt vor und übst daran deine Fertigkeiten und deine Ausdauer?

Medium 5. Mär 2014 15:09

AW: *.dll zur Laufzeit erzeugen
 
Unabhängig davon wofür das gut sein sollte: Dafür brauchst du einen Compiler. Den von Delphi darfst du allerdings nicht mitgeben. Manche Lösungen nehmen sich dafür dann andere, freie Compiler her (Free Pascal z.B.)

Luki206 5. Mär 2014 15:14

AW: *.dll zur Laufzeit erzeugen
 
Ich muss gleich los und jetzt nochmal an etwas anderem weiterzuarbeiten hatte ich nicht vorgesehen und mich hatte das auch mal interessiert ob man eine DLL zur Laufzeit erstellen kann

nuclearping 5. Mär 2014 15:27

AW: *.dll zur Laufzeit erzeugen
 
Zitat:

Zitat von Luki206 (Beitrag 1250754)
Ich muss gleich los und jetzt nochmal an etwas anderem weiterzuarbeiten hatte ich nicht vorgesehen und mich hatte das auch mal interessiert ob man eine DLL zur Laufzeit erstellen kann

Prinzipiell kann man das, ja. Eine DLL ist ja nichts weiter, als eine Datei in einem bestimmten Format und mit verschiedenen Daten, mit denen das Betriebssystem was anfangen kann. Ganz genau genommen braucht man dafür nichtmal einen "Compiler" in dem Sinne, dass er Quellcode übersetzt, sondern man muss in dem Fall eben die DLL im erwarteten Format per Hand erstellen und mit den korrekten Daten, Opcodes, Tables, usw. füllen.

Aber ist das was für einen Laien? Nein. :mrgreen:

Und wie die anderen hier schon sagten: Wozu soll das gut sein? Wenn du eine Resourcen-DLL brauchst, kannst du auch 1) im Compiler (sprich mit Delphi) eine erstellen und 2) zur Not diese auch noch zur Laufzeit modifizieren (das was auch ein Resourcen-Editor machen kann).

himitsu 5. Mär 2014 15:29

AW: *.dll zur Laufzeit erzeugen
 
Nur müsstest du dann den Compiler mit deine Anwendung mitgeben und ob das erlaubt ist, ist eine andere Frage.

PS:
- leere DLL erstellen
- diese leere DLL zu deiner EXE legen oder als Resource einbinden
- DLL kopieren oder aus der EXE-Resource auslesen
- nun die DLL im Programm laden
- und die DLL-Resource bearbeiten

Also praktisch das mit dem eigenen Programm machen, was man auch mit jedem Resourcen-Editor machen könnte. :roll:

Christian Seehase 6. Mär 2014 09:02

AW: *.dll zur Laufzeit erzeugen
 
Moin Zusammen,

getestet habe ich es noch nicht, aber grundsätzlich müsste sich das über die Resourcen-Funktionen der Windows-API durchführen lassen, angefangen mit BeginUpdateResource
Man muss also nur eine leere DLL mitgeben, die dann mit den API-Funktionen editiert werden kann.

DeddyH 6. Mär 2014 09:06

AW: *.dll zur Laufzeit erzeugen
 
Wenn ich es richtig verstanden habe, entspricht das genau dem, was himitsu in seinem PostScriptum skizziert hat. Ich kann mir auch vorstellen, dass das technisch möglich wäre, nur fehlt mir die Phantasie, einen konkreten Anwendungsfall benennen zu können, wenn es nicht gerade um ein Tool zum Erstellen von Ressourcen-DLLs durch den Endanwender geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr.
Seite 1 von 2  1 2      

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