![]() |
AW: Bilder aus Dll einbinden?
Nein.
Ich seh da so gut wie gar nichts sinnvolles in der Datei... Ich habe die DLL aber exakt nach Anleitung erstellt.. hier meine vorgehensweise: Datei - Neu - "DLL-Experte" Diese habe ich in einem Verzeichnis ("Bilder") gespeichert. In diesem Ordner befinden sich meine Bilder mit den Namen: h3.jpg h5.jpg hk.jpg Weiterhin ist in dieser eine Bilder.rc Datei, welche folgenden Inhalt besitzt: BILD1 JPEG "h3.jpg" BILD2 JPEG "h5.jpg" BILD3 JPEG "hk.jpg" Nun bin ich in Delphi auf Projektverwaltung und habe dort unter Bilder.dll rechtsklick, hinzufügen gemacht und die Bilder.rc Datei ausgewählt. Dann hat Delphi automatisch den Code angepasst zu:
Delphi-Quellcode:
Dann habe ich das Projekt erstellt mit Strg+F9.. Die DLL wurde erzeugt und diese habe ich dann in das Verzeichnis meines eigentlichen Projekts kopiert.
library Bilder;
{$R 'Bilder.res' 'Bilder.rc'} uses SysUtils, Classes; begin end. Ist das falsch gewesen? |
AW: Bilder aus Dll einbinden?
Delphi 2005 kompiliert die RC-Dateien nicht automatisch (glaub ich).
Das müßtest du also selber machen. |
AW: Bilder aus Dll einbinden?
Und ob STRG-F9 da reicht, weiß ich nicht so genau, hast Du es mal mit SHIFT-F9 probiert?
|
AW: Bilder aus Dll einbinden?
Ich benutze Delphi 7... habe bei der Bilder.rc jetzt mal Bilder erzeugen gemacht.. hat sich aber nichts geändert.. die Dll hab ich erneut erzeugt, aber auch diesmal findet er die Ressource nicht...
Shift-F9 bringt gar nichts.. oO was soll denn da passieren? |
AW: Bilder aus Dll einbinden?
Um aus der *.rc eine *.res zu machen, brauchst Du IIRC die brcc32.exe. Das ist ein Kommandozeilenprogramm, das im Normalfall mit Delphi installiert wird (müsste also im Delphi-bin-Verzeichnis liegen).
|
AW: Bilder aus Dll einbinden?
Zitat:
Zitat:
|
AW: Bilder aus Dll einbinden?
So, das sieht jetzt alles schon ein bisschen besser aus!
Habe jetzt die .rc mit brcc32 in eine *.res umgewandelt! Diese Datei ist jetzt ca so groß wie die Bilder zusammen.. dürfte also stimmen.. dann habe ich das ganze erneut mit Delphi in eine dll umgewandelt.. diese ist sogar noch ein bisschen größer.. (149Kb) Mit dem Resourcenhacker habe ich in die DLL geschaut und nun gibts da auch nen Ordner JPEG mit BILD1, BILD2 und BILD3, allerdings sehe ich keine Bilder, sondern lediglich Hexadezimalcode (sollte auch richtig sein denke ich :D) Aber trotz allem findet er noch immer keine Ressource Bild1 So Leute, das wars!!! Hab die Zeile zu:
Delphi-Quellcode:
geändert und das Bild wird eingefügt!
r := TResourceStream.Create(h, 'BILD1', 'JPEG');
Für alle die in Zukunft nochmal auf dieses Thema stoßen, hier der komplette Quelltext:
Delphi-Quellcode:
procedure images();
var h :HINST; r :TResourceStream; j :TJpegImage; begin h := LoadLibrary('F:\Programme\Borland\Delphi7\Projects\Poker\bilder.dll'); if h <> 0 then begin r := TResourceStream.Create(h, 'BILD1', 'JPEG'); j := TJpegImage.Create; try j.LoadFromStream(r); Form1.Image1.Picture.Assign(j); finally j.Free; r.Free; end; FreeLibrary(h); end else RaiseLastOSError(); end; |
AW: Bilder aus Dll einbinden?
OK, im Ausgangspost steht halt was von Delphi 2005.
(der Admin muß das endlich mal ändern) PS: Trag doch einfach mal deine Delphi-Version in dein DP-Profil ein. Gut, Delphi 7 kompiliert erst rechte keine RC-Dateien von sich aus. Du mußt also erstmal aus der RC eine RES erstellen (siehe Post #25), welche du dann in deine DLL einbinden kannst. |
AW: Bilder aus Dll einbinden?
Jup, das war auch der Fehler, dankeschön!
|
AW: Bilder aus Dll einbinden?
Sorry für den Doppelpost, aber ich hätte da noch eine Frage:
Kann ich die Bilder auch am Anfang einmal einlesen und dann die ganze Zeit nutzen? Geht das irgendwie? Mit diesem Handle und Stream siehts recht komplex aus.. geht das? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 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