Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
  • Autor
    Beiträge
  • #1918

    brainiac
    Teilnehmer

    ich verwende den mingw compiler um mein projekt zu compilieren und das verwendet die win32api mit der gdi

    nun hab ich folgendes problem:
    ich habe einige zeichenoperationen und so weiter eingebaut und die funktionieren auch allesamt, solange ich bitmaps aus externen dateien lade

    [c]static HBITMAP screen=(HBITMAP)LoadImage(NULL,“TitleScreen.bmp“,IMAGE_BITMAP,800,600,LR_LOADFROMFILE);[/c]

    so… jetzt will ich aber die bitmaps aus resourcen laden weil es einfach praktischer ist und dafür hab ich diesen code verwendet

    [c]static HBITMAP screen=(HBITMAP)LoadImage(NULL,MAKEINTRESOURCE(IDB_TITLESCREEN),IMAGE_BITMAP,800,600,LR_DEFAULTCOLOR);[/c]

    der rest des programms ist komplett identisch in beiden versionen
    wenn ich jetzt vor dem zeichnen des bitmaps überprüfe ob es =NULL ist enthält der erste einen gültigen handle, aber der zweite nicht und ich lass mir eine meldung ausgeben…

    ich hab auch schon verschiedenes versucht, aber bisher hat nix geholfen…

    hoffentlich kann mir wer helfen, wär echt nett^^

    #7999

    nasenbaer
    Teilnehmer

    Ich hab zwar seit Jahren keine Winapi mehr gesehen, aber das hier lief vor Jahren mal auf einem Rechner in der Schule: http://www.willemer.de/informatik/windows/winrsc.htm#top

    #8000

    brainiac
    Teilnehmer

    also danke erstmal für die schnelle antwort, obwohl es nix gebracht hat :D

    ich hab das mal eingefügt und es läuft trotzdem nicht… außerdem steht in der msdn man soll loadimage gegenüber loadbitmap bevorzugen (das zur info^^)
    ich glaub aber der fehler liegt eher woanders begründet…

    ich muss ja vorher die resource in einem resourcescript (.rc) laden und mit einer id versehen… hab ich gemacht sieht so aus

    TitleScreen.rc

    Code:
    #include „resource.h“

    IDB_TITLESCREEN BITMAP DISCARDABLE „Titlescreen.bmp“

    dann mit dem aufruf des resourcecompilers kompilieren in ein .o objekt (im ausführen->cmd eingeben „windres TitleScreen.rc TitleScreen.o“ für mingw compiler)

    dann dem linker mitteilen dass er die resource einbinden soll (beim linkeraufruf hab ich „resources/*.o“ hinzugefügt, hab auch schon versucht alle resourcen einzeln zu laden, geht auch nicht)

    und im code dann zum schluss laden und zum zeichnen verwenden (code siehe oben)

    hilft das? gibts irgendwas was ich nicht beachtet hab? beim linken vielleicht?

    PS: ich hab übrigens in dem programm noch icon-resourcen eingebunden und die funktionieren einwandfrei, also kanns in meinen augen auch nicht am linker liegen :huh: ?(

    PPS: ich hab mal mit dem resource-hacker tool (http://angusj.com/resourcehacker/) überprüft ob in der .exe die resource richtig drin ist, und das ist sie auch… also kann es ja im prinzip tatsächlich nur noch an der codezeile liegen, die das bitmap laden soll… also jetzt bin ich echt am ende mit meinem latein… ich werd nochmal versuchen ein kleineres bitmap einzubinden und das „DISCARDABLE“ wegzulassen um zu gucken dass es nicht am speicher liegt, aber wenn das nicht hilft und mir hier keiner hilft bin ich genauso schlau wie vorher und lass es einfach…

Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)

Du musst angemeldet sein, um auf dieses Thema antworten zu können.