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/)
-   -   Resource-DLLs (https://www.delphipraxis.net/121966-resource-dlls.html)

Prototypjack 7. Okt 2008 17:21


Resource-DLLs
 
Moin,

Ich habe hier mal eine theoretische Frage zu Resource DLLs (eigentlich gleich mehrere):
  • Was genau sind solche DLLs?
  • Wie sind sie intern aufgebaut?
  • Wie werden sie erstellt (dürfte mit dem vorhergehenden Punkt einhergehen)

Hat jemand ein bisschen Lektüre für mich? Ich würde mich gerne eingehender (vor allem mit dem internen Aufbau) dieser Objekte beschäftigen.

Grüße,
Max

turboPASCAL 7. Okt 2008 17:32

Re: Resource-DLLs
 
Zitat:

Zitat von Prototypjack
]Was genau sind solche DLLs?

Das sind DLL's die ausschieslich Resourcen aller erdenklicher Art wie Bilder Musik oder Texte etc. enthalten.

Zitat:

Zitat von Prototypjack
Wie sind sie intern aufgebaut?

Im Grunde enthalten sie einen DLL-PE-Header und Dann nur noch die Resourcen wie in einer Res-Datei.


Zitat:

Zitat von Prototypjack
Wie werden sie erstellt (dürfte mit dem vorhergehenden Punkt einhergehen

Einfach eine DLL erstellen und eine Resource einfügen, fertig.

Zitat:

Hat jemand ein bisschen Lektüre für mich? Ich würde mich gerne eingehender (vor allem mit dem internen Aufbau) dieser Objekte beschäftigen.
Nö, aber ich kann dir ein Beispiel mit Kommentaren machen. :mrgreen:

BullsEye 7. Okt 2008 17:55

Re: Resource-DLLs
 
Zitat:

Zitat von turboPASCAL
Nö, aber ich kann dir ein Beispiel mit Kommentaren machen. :mrgreen:

Daran hätte ich auch mal Interesse ;)


=dll]Hier gibts einige Infos!

tP, wenn du iwie ne Demo dazu schreibst, kannst du da ggf iwie folgendes mit einbringen?
Zitat:

- Alle DLL's aus einem Ordner auslesen und in einer Listbox (bsp) auflisten.
- DLL's aktivieren / deaktivieren (fals das überhaupt möglich ist)
- Wenn ich in einer DLL nen Button habe, soll der Button sowie dessen Funktion in das Programm implementiert werden

turboPASCAL 7. Okt 2008 18:06

Re: Resource-DLLs
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

- Alle DLL's aus einem Ordner auslesen und in einer Listbox (bsp) auflisten.
Findfile & Co. nutzen

Zitat:

- DLL's aktivieren / deaktivieren (fals das überhaupt möglich ist)
Äh, ne. MAn kann sie laden oder entladen LoadLibrary oder Freelibrary

Zitat:

Wenn ich in einer DLL nen Button habe, soll der Button sowie dessen Funktion in das Programm implementiert werden
Einzeile Buttons kann man nicht speichern wenn dan als Bild-Buttons.
Formulare dagegen schon. Ich finde es aber aufwendig.


Da ist die einfache Demo:

Jens Schumann 7. Okt 2008 19:09

Re: Resource-DLLs
 
Hallo,
oder schau mal hier
DLL Generator

Luckie 7. Okt 2008 21:06

Re: Resource-DLLs
 
Zitat:

Zitat von turboPASCAL
Zitat:

Wenn ich in einer DLL nen Button habe, soll der Button sowie dessen Funktion in das Programm implementiert werden
Einzeile Buttons kann man nicht speichern wenn dan als Bild-Buttons.
Formulare dagegen schon. Ich finde es aber aufwendig.

Ich glaube, das soll dann sowas wie ein Plugin-System werden. Allerdings geht das schon weit über Ressourcen DLLs hinaus und ein einfaches Beispiel ist da nicht mal so eben gemacht. Das wäre dann doch etwas viel verlangt.

turboPASCAL 8. Okt 2008 06:20

Re: Resource-DLLs
 
Zitat:

Allerdings geht das schon weit über Ressourcen DLLs hinaus und ein einfaches Beispiel ist da nicht mal so eben gemacht. Das wäre dann doch etwas viel verlangt.
So ist es.

sx2008 8. Okt 2008 07:15

Re: Resource-DLLs
 
Reine Resourcen DLLs sollten übrigens mit
Delphi-Quellcode:
handle := LoadLibraryEx(filename, nil, LOAD_LIBRARY_AS_DATAFILE);
geladen werden, um möglichst resourcenschonend zu arbeiten.

Prototypjack 8. Okt 2008 14:30

Re: Resource-DLLs
 
Moin,

Zitat:

Zitat von Jens Schumann
Hallo,
oder schau mal hier
DLL Generator

Ja, genau in diese Richtung würde wohl mein Projekt ebenfalls gehen. Entschuldigung, vielleicht wäre etwas mehr Information über die Hintergrunde angebracht gewesen.

Diese Fragen (und deshalb auch die Bitte nach der Erklärung der Datei-Interna, nicht etwa wie man sowas in Delphi baut) stellen sich mir deshalb, da ja eine Resource-DLL eigentlich keinen Code enthält. Also muss es ja theoretisch möglich sein (bei RES-Dateien kann ich das bereits komplett ohne brcc32.exe) diese ohne jegliche Hilfsmittel zu bauen. Was unterscheidet die Resource-DLL vom Aufbau (also zB. als HEX betrachtet) von der Summe ihrer Resourcen?

Um es mal mit Aristoteles' Worten zu sagen (falls ich mich nicht arg irre war es Aristoteles): Ist das Ganze auch hier mehr als nur die Summe seiner Teile?

Grüße & Danke,
Max

Apollonius 8. Okt 2008 14:36

Re: Resource-DLLs
 
Du musst bedenken, dass sich Ressourcen-DLLs aus der Sicht von Windows nicht von "normalen" DLLs unterscheiden. Auch Ressourcen-DLLs sind daher im PE-Format aufgebaut. Um Ressourcen-DLLs "von Hand" herzustellen, musst du also einen Linker schreiben. Ich habe das selbst mal probiert, aber Windows hat sich immer geweigert, die entstehende Echse auszuführen. Es ist kein ganz triviales Unterfangen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 Uhr.
Seite 1 von 2  1 2      

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