JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=016d06c32c5c4e00d8e72a71b3fef959Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Problem mit BITMAP aus DLL

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
DerJJ
Junior JLI'ler



Anmeldedatum: 24.12.2002
Beiträge: 84

Medaillen: Keine

BeitragVerfasst am: 12.06.2003, 16:15    Titel: Problem mit BITMAP aus DLL Antworten mit Zitat

Hey ho,
hab zwar schon alles gelesen was ich finden konnte hier im forum, aber ich glaub mein prob hatte noch keiner!
Also:
Ich hab ne DLL aus der ich ein Bild laden will,
hab die lib gelinkt und die headerdatei eingebunden.
Dann hab ich mir mit
Code:
HINSTANCE DLLInst;
DLLInst = GetModuleHandle("name.dll")
die Instanz gehohlt und jetzt will ich mit
Code:
hBitmap = LoadBitmap(DLLInst,MAKEINTRESOURCE(IDB_BG));
das Bild laden.
Aber, IDB_BG ist ja in meinem Programm nicht deklariert...
das einfach zu deklarieren bringt mir ja auch nix, Wie bekomme ich den das jetzt hin das der die Resource aus der DLL anzeigt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 12.06.2003, 18:53    Titel: Antworten mit Zitat

Wenn es sich um eine DLL handelt, deren Autor du nicht bist, kannst du das ganze mit einer Reihe von API-Funktionen hinbekommen. Ich habe vor kurzem mal ein solches Programm geschrieben, um aus einem Sharewareprogramm Hintergrundbilder zu extrahieren. Bist du der Autor der DLL, sollte diese DLL sich als abhängige innerhalb deines Projektes befinden und die dazugehörige Resource.h muss includiert werden. Dort wird dann auch dein Bezeichner IDB_BG definiert.
Falls Du (oder auch andere Leute hier) interesse haben, wie genau ich die Bitmaps aus den in DLL- oder EXE-Dateien laden konnte stelle ich demnächst mal wieder ein Beispielprojekt zusammen. Falls nicht mach ich mir erst gar nicht die Arbeit.

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DerJJ
Junior JLI'ler



Anmeldedatum: 24.12.2002
Beiträge: 84

Medaillen: Keine

BeitragVerfasst am: 12.06.2003, 19:05    Titel: Antworten mit Zitat

Also mich würde das schon interessieren,
aber ich würd auch so auf die schnelle mal so n kleines Beispiel mal haben wollen, da ich mir das selbst erarbeiten möchte.

Also, die DLL hab ich selbst geschrieben. Und in meiner Exe hab ich auch eine resource, also könnte ich auch einfach die Zeile
Code:
#define IDB_BG 102

in meine andere resource.h schreiben, also in die von der EXE?
Das hab ich auch schon gemacht, geht aber auch nicht!
Gib mal bitte ein kleines Beispiel, wenn ich das verstehe dann würds mich mehr freun als n komplettes Tut.
thx
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 12.06.2003, 21:49    Titel: Antworten mit Zitat

Damit du in deine DLL Bitmaps packen konntest, mußtest du ja sicherlich den ResourcenEditor verwenden - bzw. zumindest durch "Einfügen / Ressource" das Bitmap in das DLL-Projekt einfügen. Dieses DLL-Projekt enthält dann auch die Resource.h, die du in deinem Exe-Projekt einbinden musst - oder zumindest den passenden #define-Eintrag herauskopieren musst. Allerdings weiß ich jetzt nicht genau, wie die Unterscheidung zwischen den Quellen geschieht - bsp. Wenn du ein Bitmap mit der ID IDB_BG in der DLL hast und ein Bitmap IDB_DB2 in der EXE hast, die aber den gleichen Wert besitzt. Ich weiß, dass ich früher mal ein ähnliches Problem hatte und danach die Resoucen immer in der EXE selbst hatte - weil einfacher zu handhaben. Die 2. Möglichkeit ist natürlich die Direkte Benutzung der API-Funktionen LoadLibrary, EnumResourceTypes, EnumResourceNames, EnumResourceLanguages, FindResourceEx und schließlich LoadImage... Siehe in der MSDN für die passenden Paramter. Die EnumXYZ-Funktionen sind übrigens Funktionen, die eine Rückruffunktion benötigen...

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum