Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bild über Ressource-Dll laden (https://www.delphipraxis.net/14156-bild-ueber-ressource-dll-laden.html)

ZelltoD 16. Jul 2008 16:28

Re: Bild über Ressource-Dll laden
 
Erstmal danke für deine schnelle Antwort.

Das ist der Quellcode von meinem Testprogramm:

Delphi-Quellcode:
unit testunit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

VAR LibHandle: HINST; Bitmap: TBitmap;
BEGIN
  LibHandle:=Loadlibrary(PChar(ExtractFilePath(ParamStr(0))+'NAME.dll'));
  IF LibHandle <> 0 THEN BEGIN
   Bitmap:=TBitMap.Create;
       TRY
        Bitmap.LoadFromResourceID(LibHandle, 1);      
         Image1.Canvas.Draw(0,0,Bitmap);
        FINALLY
         Bitmap.Free;
        END;
  FreeLibrary(LibHandle);
  END ELSE
    RaiseLastOSError();

end;

end.
Der Code meiner DLL:
Delphi-Quellcode:
library NAME;

   {$R *.res} 
   {$R 'BILDER.res' 'BILDER.rc'} 
    begin
    end.
Meine *.rc-Datei:
Delphi-Quellcode:
1 BITMAP "zoid.bmp"
Und der Inhalt meines Testordners:

http://zelltod.ze.ohost.de/backstage/inhalt.JPG

Mal ne blöde Frage: gibt es einen Unterschied im Kompilieren von *.dll Dateien im Vergleich zu normalen Projekten?
Ich hab nähmlich gemerkt, dass nach dem vermeindlichen Kompiliren zwar ne *.res aber keine *.drc Datei im Ordner war :gruebel:
Zu meiner Verteidigung: Ich bin blutiger Anfänger in Sachen dll und versuche jetzt so im Moment nach und nach den Durchblick zu bekommen. :angel2:

geskill 16. Jul 2008 16:33

Re: Bild über Ressource-Dll laden
 
Zitat:

Zitat von ZelltoD
Ich hab nähmlich gemerkt, dass nach dem vermeindlichen Kompiliren zwar ne *.res aber keine *.drc Datei im Ordner war :gruebel:

Das ist wahrscheinlich ein Tipfehler von mir muss natürlich *.rc heißen,
jedoch bemerke ich das du keine BILDER.res-Datei im Ordner hast!
Ich schließe deshalb mal darauf du hast die DLL nicht compiliert (im Projektmanager rechtsklick auf das DLL Projekt)
oder du hast es falsch oder gar nicht eingebunden, was sich aber mit dem Quelltext wiederspricht.

EDIT: Du kannst ja mal im Projektmanager gucken ob da die *.rc angezeigt wird, wenn nich dann mal von dort (rechtsklick auf das Projekt, dann Hinzufügen, dort *.rc wählen ... naja und dann mal schauen)

Zitat:

Zitat von ZelltoD
Zu meiner Verteidigung: Ich bin blutiger Anfänger in Sachen dll und versuche jetzt so im Moment nach und nach den Durchblick zu bekommen. :angel2:

War/bin ich ja auch :) ^^ ...

ZelltoD 16. Jul 2008 17:47

Re: Bild über Ressource-Dll laden
 
Hmm ich habs jetzt nochmal Versucht, jetzt stehe ich aber vor folgendem Problem:

Zitat:

jedoch bemerke ich das du keine BILDER.res-Datei im Ordner hast!
Ich schließe deshalb mal darauf du hast die DLL nicht compiliert (im Projektmanager rechtsklick auf das DLL Projekt)
oder du hast es falsch oder gar nicht eingebunden, was sich aber mit dem Quelltext wiederspricht.
Naja wenn ich die dll mit rechtsklick im Projektmanager/compilieren Kompilieren möchte Kommt er mit dem Fehler
"[DCC Fehler] E1026 Datei nicht gefunden: 'BILDER.res'" :gruebel:

mfg

geskill 16. Jul 2008 17:50

Re: Bild über Ressource-Dll laden
 
dann versuchs mal mit erzeugen ^^
bzw. das über den Projektmanager hinzufügen...

ZelltoD 16. Jul 2008 17:54

Re: Bild über Ressource-Dll laden
 
Erzeugen geht genauso wenig ..... -> gleicher Fehler

geskill 16. Jul 2008 17:59

Re: Bild über Ressource-Dll laden
 
Wie gesagt hast du im Projektmanager die *.rc ?

ZelltoD 16. Jul 2008 18:11

Re: Bild über Ressource-Dll laden
 
So ich muss mich berichtigen: das res Problem scheint soweit gelöst...
Jetzt hab ich beim kompilieren der DLL noch folgenden Fehler:
[DCC Fehler] E2161 Warning: Duplicate resource: Type 2 (BITMAP), ID 1; File E:\Delphi\Meine Programme\test\BILDER.res resource kept; file E:\Delphi\Meine Programme\test\BILDER.res resource discarded. :roll:


....

Stop hat sich erledigt ... hatte was doppelt in der dll ...

ZelltoD 16. Jul 2008 18:19

Re: Bild über Ressource-Dll laden
 
Soweit sogut, beides -> Projekt sowie dll lassen sich jetzt einwandfrei compilieren, aber wenn ich die dll mit f9 starten will, um die eigendliche dll datei im ordner zu erstellen, bekomme ich nen Fehler...

http://zelltod.ze.ohost.de/backstage/host.JPG

geskill 16. Jul 2008 18:25

Re: Bild über Ressource-Dll laden
 
Also ich bitte dich, der Fehler sagt doch alles oder ? Die Fehlermeldung ist sogar auf Deutsch, mach mal genau das was die Fehlermeldung besagt! Host-Anwendung ist dein Testprojekt ;)

ZelltoD 16. Jul 2008 18:39

Re: Bild über Ressource-Dll laden
 
Ja schon klar, aber wenn ich die ganze Sache über die Hostanwendung, also mein Projekt starte sagt er nichts anderes als "Systemfehler Code 126 Das angegebende Modul wurde nicht gefunden".

Und ich dachte, dass es vielleicht daran liegt, dass ich auch nach dem compilieren der dll keine *.dll Datei in meinem Verzeichnis hab.

:twisted:

________

Naja solangsam ists genug, ich werd jetz noch ne weile herumprobieren...vielleicht bekomm ichs hin.

Ansonsten noch ein ganz großes Dankeschön für deine Hilfe.

Achja falls du bei dir irgendwo ein Beispielprojekt liegen hast wäres super wenn du mir das mal schicken könntest, vielleicht hilft mir das weiter ...

mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 Uhr.
Seite 2 von 3     12 3      

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