SDL Anfaengerproblem



  • Hallihallo,
    Ich will mich ein bisschen in SDL einarbeiten und habe schon ein bisschen rum-
    probiert. Mein Problem liegt darin, dass ich nicht nur Bitmaps laden will sondern
    zb auch PNG's. Da habe ich SDL_image gefunden bzw die Funktion IMG_Load().

    Aber:
    Der folgende Code-Ausschnitt gibt immer NULL zurueck.

    SDL_Surface bild;
    bild = IMG_Load("C:\\bild.jpg");
    if (bild == NULL)
        return;
    

    Und ich weiß einfach nicht warum.

    1. Das Bild ist vorhanden.
    2. Dateiname stimmt überein
    3. Aufruf müsste stimmen

    Ich weiß nicht woran es liegt, dass immer NULL zurück gegeben wird.
    Könnt ihr mir helfen?

    EDIT: Benutze:
    []Microsoft Visual C++ 2008 Express Edition
    [
    ]SDL 1.12.13



  • Was sagt IMG_GetError()?



  • Wie füg ich das ein ?

    EDIT:
    Hat sich erledigt...
    Danke für den Hinweis mit IMG_GetError();

    Habe die DLL-Dateien vergessen.



  • Quellcode schrieb:

    Hallihallo,
    Ich will mich ein bisschen in SDL einarbeiten und habe schon ein bisschen rum-
    probiert. Mein Problem liegt darin, dass ich nicht nur Bitmaps laden will sondern
    zb auch PNG's. Da habe ich SDL_image gefunden bzw die Funktion IMG_Load().

    Aber:
    Der folgende Code-Ausschnitt gibt immer NULL zurueck.

    SDL_Surface bild;
    bild = IMG_Load("C:\\bild.jpg");
    if (bild == NULL)
        return;
    

    Und ich weiß einfach nicht warum.

    1. Das Bild ist vorhanden.
    2. Dateiname stimmt überein
    3. Aufruf müsste stimmen

    Ich weiß nicht woran es liegt, dass immer NULL zurück gegeben wird.
    Könnt ihr mir helfen?

    EDIT: Benutze:
    []Microsoft Visual C++ 2008 Express Edition
    [
    ]SDL 1.12.13

    bild = IMG_Load("c:/bild.jpg");
    

    auch NULL?



  • Auch wenn das schon als erledigt gekennzeichnet ist (dll-Dateien vergessen?) habe ich noch eine Anmerkung:

    Wenn du schon auf einen NULL-Pointer prüfst, sollte es sich bei dem Objekt auch um einen Pointer handeln.

    SDL_Surface* bild = IMG_Load(...);
    //---------^
    
    // ...
    SDL_FreeSurface(bild);
    

    Gemäß der Dokumentation gibt IMG_Load einen Pointer (auf SDL_Surface) zurück.

    Grüße... Heiko


Anmelden zum Antworten