|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
DerJJ Junior JLI'ler
Anmeldedatum: 24.12.2002 Beiträge: 84
Medaillen: Keine
|
Verfasst am: 12.06.2003, 16:15 Titel: Problem mit BITMAP aus DLL |
|
|
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 |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 12.06.2003, 18:53 Titel: |
|
|
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 |
|
|
DerJJ Junior JLI'ler
Anmeldedatum: 24.12.2002 Beiträge: 84
Medaillen: Keine
|
Verfasst am: 12.06.2003, 19:05 Titel: |
|
|
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
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 |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 12.06.2003, 21:49 Titel: |
|
|
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 |
|
|
|
|
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
|