Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dll oder Ressorcen (https://www.delphipraxis.net/9853-dll-oder-ressorcen.html)

HomerGER 6. Okt 2003 13:15


Dll oder Ressorcen
 
Hallo liebe Wissende
ich habe in mein programm viel text und ne menge bilder
die texte lade ich aus den ressorcen und die bilder einfach aus einem verzeichniss
ist es nun besser alles in dll's zu packen und warum oder alles in ressorcen (auch hier warum)
wenn ich mit dll's arbeiten möchte stellt sich mir aber leider noch die frage wie erstelle ich eigene dll's ?
hab leider hier nix gefunden (oder richtig gesucht)

Matze 6. Okt 2003 13:37

Re: Dll oder Ressorcen
 
Sorry, weiß nichts auf deine Fragen, nur das hier:

http://www.delphipraxis.net/internal...&highlight=dll

Christian Seehase 6. Okt 2003 13:44

Re: Dll oder Ressorcen
 
Moin Homer,

in D5 bekommst Du die Basis für eine DLL mit

Datei\Neu...\DLL

Wenn Du nur eine Resourcen DLL brauchst enthält die dann auch nicht viel:

Delphi-Quellcode:
library GraRes;

{$R BITMAPS\MeineResourcen.RES}

begin
end.
Die Vorteile einer Resourcen DLL sehe ich, z.B., in folgenden Punkten:
  • Bei Änderung der Resourcen (z.B. andere Sprache für das Programm) muss man nur eine andere DLL laden (muss natürlich entsprechend im Programm vorgesehen sein.)
  • Bei Änderung der Resourcen kann man die EXE unangetastet lassen.
  • Man benötigt die DLL u.U. nur, um die Resourcen daraus zu laden, und kann sie anschliessend wieder entladen. Schont den Speicher.

Eine Resourcen DLL kann man dann einfach mit
Delphi-Quellcode:
hResourceDLL := LoadLibraryEx('NameDer.DLL',0,LOAD_LIBRARY_AS_DATAFILE);
laden

Phoenix 6. Okt 2003 13:50

Re: Dll oder Ressorcen
 
An der Stelle - da die Frage schon zig-fach kam, würde es sich anbieten, wenn jemand der Ahnung davon hat vielleicht mal anfangt, ein kleines Tutorial zu erstellen und in der CodeLib zu veröffentlichen?

Was haltet ihr davon? :dp:

Matze 6. Okt 2003 14:01

Re: Dll oder Ressorcen
 
Erst suchen, dann posten. ;)

http://www.delphipraxis.net/internal...&highlight=dll

HomerGER 6. Okt 2003 18:11

Re: Dll oder Ressorcen
 
Hallo
danke erstmal, habt wieder helfen können (wie fast immer)
das mit den links hier hilft mir erstmal.
werde es mal alles durcharbeiten.

ich dachte immer wenn ich mit ressorcen arbeite wird die exe unnötig gross und mit dll's könnte man es kleiner halten !???

Christian Seehase 6. Okt 2003 18:22

Re: Dll oder Ressorcen
 
Moin Homer,

Zitat:

Zitat von HomerGER
ich dachte immer wenn ich mit ressorcen arbeite wird die exe unnötig gross und mit dll's könnte man es kleiner halten !???

das war es, was ich mit meinem dritten Punkt ausdrücken wollte.

HomerGER 12. Okt 2003 09:18

Re: Dll oder Ressorcen
 
was ist denn der Unterschied zwischen einer dll und einer ressorcen-dll ?
oder gibt es kein unterschied?

MatthiasW 12. Okt 2003 09:49

Re: Dll oder Ressorcen
 
Hallo,

Zitat:

Zitat von HomerGER
was ist denn der Unterschied zwischen einer dll und einer ressorcen-dll ?
oder gibt es kein unterschied?

der unterschied ist nur der, das eine "normale" DLL nur Funktionen exportiert während man in einer Ressourcen-DLL neben den eingebundenen Ressourcen zusätzlich noch Funktionen exportieren kann.

Mfg Matthias

SirThornberry 12. Okt 2003 09:55

Re: Dll oder Ressorcen
 
wie kann ichn dann die ressourcen aus der DLL in meinem Programm verwenden. Hatte das ganze mal probiert in dem ich einer funktion in der dll eine id übergebe und die sollte mir dann nen String in der entsprechenden spache zurückgeben. Und dann viel mir ein das ich ja die unit mit dem sharemem nicht verwenden wollte und habs somit verworfen... geht das mit den ressourcen ohne sharemem??

MatthiasW 12. Okt 2003 10:12

Re: Dll oder Ressorcen
 
Hallo,

Zitat:

Zitat von SirThornberry
wie kann ichn dann die ressourcen aus der DLL in meinem Programm verwenden. Hatte das ganze mal probiert in dem ich einer funktion in der dll eine id übergebe und die sollte mir dann nen String in der entsprechenden spache zurückgeben. Und dann viel mir ein das ich ja die unit mit dem sharemem nicht verwenden wollte und habs somit verworfen... geht das mit den ressourcen ohne sharemem??

der String wird ja als Ressource eingebunden, ich denke nicht das du dazu die "Sharemem" brauchst.

Probiers am besten aus: erstell mit einem Ressource editor eine Res - Datei und füge darin strings ein, dann bindest du diese Datei in die DLL mit "{$R 'Bilder.res'}" ein und compilierst du das ganze. Du liest jetzt nach dem in den Postings beschriebenen Schema aus deiner DLL (natürlich keine Bitmaps sondern Strings).

Mfg Matthias

SirThornberry 12. Okt 2003 10:20

Re: Dll oder Ressorcen
 
muss ich de Ressourcen aus der DLL noch irgendwie unter Export aufführen??? Gibts nicht irgendwo nen Toutorial dazu oder nen Source-schnippsel das funktioniert??

MatthiasW 12. Okt 2003 10:27

Re: Dll oder Ressorcen
 
Hallo,

Zitat:

Zitat von SirThornberry
muss ich de Ressourcen aus der DLL noch irgendwie unter Export aufführen??? Gibts nicht irgendwo nen Toutorial dazu oder nen Source-schnippsel das funktioniert??

nein du fügst einfach die Zeile "{$R 'Bilder.res'}" in den Header deiner DLL - Projektfile ein, das wars.

Bezüglich des Tutorials, schaust du hier Tutorial

Mfg Matthias

SirThornberry 12. Okt 2003 10:58

Re: Dll oder Ressorcen
 
wie ich ne dll einbinde bzw auf die funktionen darin zugreif weiß i, nur nicht wie ich dann auf die resourcen darin zugreife...

MatthiasW 12. Okt 2003 12:31

Re: Dll oder Ressorcen
 
Hallo,

wie du an Bilder rankommst steht weiter oben in diesem Thread. Und an die Strings könntest du möglicherweise mit "LoadStr" rankommen. Am Besten du suchst nach "LoadStr" mal in der Hilfe.

Mfg Matthias

MatthiasW 12. Okt 2003 12:41

Re: Dll oder Ressorcen
 
Hallo,

nochwas suche mal in der Delphi - Hilfe nach "Ressourcen-DLLs". Da findest du (zumindest bei meiner 5er) eine Erklärung zur Verwendung , zum erstellen und verwenden dieser DLL's eine Anleitung.

Wenn du nähmlich deiner Ressourcendatei den selben namen wie die EXE hat gibts (natürlich Erweiterung DLL) lädt deine Application diese automatisch.

Noch ein Beispiel aus der Hilfe um einen String aus soeiner DLL zu laden:

Code:
LoadStr(FindResourceHInstance(HInstance), IDS_AmountDueName, szQuery, SizeOf(szQuery));
Mfg Matthias

Christian Seehase 12. Okt 2003 13:09

Re: Dll oder Ressorcen
 
Moin SirThornberry,

wie die DLL aussehen kann, und wie man sie in das Programm einbinden kann hatte ich doch weiter oben beschrieben.
Als Instance Handle kann man dann einfach das von LoadLibraryEx zurückgegebene Handle verwenden, um auf die Resourcen der DLL zugreifen zu können.

SirThornberry 12. Okt 2003 13:16

Re: Dll oder Ressorcen
 
Danke, werds mal probieren wenn ich zeit hab.


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