![]() |
Bilder DLL schreiben und laden
Guten Morgen!
Nach ewigem versuchen habe ich es immernoch nicht hinbekommen eine DLL zu schreiben, die dann auch funktioniert... Ich HABE die Such-Funktion bemüht und zwar gleiche Themen gefunden.....aber selbst wenn ich die vermeintlichen Lösungen sogar 1:1 kopiert habe....funktionierte es nicht..... (ich benutze Delphi 6) meine Bilder.rc :
Delphi-Quellcode:
Dann, wie es überall steht, den DLL-Wizard benutzt und dies eingefügt:
BILD1 JPEG "1.jpg"
Delphi-Quellcode:
soweit so gut.... compiliert ..... soweit klappt es, wenn ich die Host-Anwendung unter run/parameters
{$R 'Bilder.res''Bilder.rc'}
aud eine projekt.exe lege, die ich vorher erstellt hatte... und zum Schluß diesen Quellcode in die projekt.exe eingefügt :
Delphi-Quellcode:
Die Fehlermeldung ist, dass der Compiler "BILD1" nicht kennt....
procedure TForm1.FormCreate(Sender: TObject);
var h :HINST; r :TResourceStream; j :TJpegImage; i :integer; begin h := LoadLibrary('Bilder.dll'); if h <> 0 then begin r := TResourceStream.Create(h, BILD1, 'Jpeg'); j := TJpegImage.Create; try j.LoadFromStream(r); Image1.Picture.Bitmap.Assign(j); finally j.Free; r.Free; end; end; FreeLibrary(h); end; else RaiseLastOSError(); end; kann mir da einer bitte helfen? Es klappt einfach nicht, egal wie viele Foren ich durchsuche... Vielen Dank im Vorraus schonmal ich hoffe jmd hilft mir :) |
Re: Bilder DLL schreiben und laden
Das "BILD1" steht bei dir aber schon in Hochkommas "'" oder? (also 'BILD1')
|
Re: Bilder DLL schreiben und laden
Jetzt ja....^^ (Danke schonmal :) )
Fehlermeldung hat sich dadurch schonmal etwas verändert..... von einem undeclarierten 'BILD1' entsteht jetzt die Fehlermeldung, dass er die Ressource BILD1 nicht findet |
Re: Bilder DLL schreiben und laden
Ist JPEG überhaupt ein gültiger Ressourcentyp?
|
Re: Bilder DLL schreiben und laden
Ich meine auch, das müsste doch RCDATA heißen, oder?
|
Re: Bilder DLL schreiben und laden
Delphi-Quellcode:
BILD1 RCDATA "1.jpg"
so? tut sich auch nichts anderes :( |
Re: Bilder DLL schreiben und laden
Zitat:
Auszug aus einem meiner anfangs-versuch-projecte
Code:
BILD1 JPEG "res\Borland.jpg"
BILD2 JPEG "res\Delphi.jpg" BILD3 JPEG "res\Foto.jpg" dll01 RCData "res\MBT.dll" |
Re: Bilder DLL schreiben und laden
Am Ressourcentyp kann es nicht liegen, den kann man frei definieren, wenn man möchte.
Dein Beispiel funktioniert bei mir auch problemlos. (Nach einer kleinen Korrektur an der Blockstruktur lässt es sich auch kompilieren.) Bist Du sicher, dass das Bild auch in der DLL gelandet ist? Wenn Du die rc-Datei mit "Dem Projekt hinzufügen..." einbindest, sparst Du Dir das manuelle Eintragen der Ressource. Zum Erzeugen der DLL brauchst Du keine Host-Anwendung. |
Re: Bilder DLL schreiben und laden
Zitat:
|
Re: Bilder DLL schreiben und laden
hmmm erst wars das...
jetzt hab ich ein sehr großes bild genommen und sehe....nein das ist nicht der fall.... wegen host anwendung.... der sagt mir wenn ich die nicht festlegen, dass eine hostanwendung fehlt und nicht compiliert werden kann.... "Cannot debug project unless a host application is defined. Use.... " was soll ich da sonst machen? Oo ich hab wohl in der reihenfolge irgendwo einen fehler gemacht :( also ich hab die .rc datei dann öffne ich den dll wizard "new" -> "dll wizard" speicher dann die rc dem projekt hinzufügen und compilieren so richtig? edit : habs jetzt nochmal neu mit "dem projekt hinzufügen" probiert.... anscheind hab ich an der falschen stelle das hingeschrieben gehabt (ich schäm mich ja schon ^^) trotzdem sind jetzt 3 fehlermeldungen da [Error] WARNING. Duplicate resources: [Error] Type 14 (ICON GROUP), ID MAINICON: [Error] File C:\...\Bilder.res resource kept; file C:\...\Bilder.res resource discarded: also konnte er diese datei nicht wirklich erkennen? oder wie? mir fällt es schwer sowas zu deuten :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 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