IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Erreur (0xc000007b) : Impossible de démarrer le programme.


Sujet :

SDL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 18
    Points : 2
    Points
    2
    Par défaut Erreur (0xc000007b) : Impossible de démarrer le programme.
    Bonjour tout le monde !

    Je ne sais pas si je suis le seul à être tombé sur cette erreur, mais il s'agit d'une fatal error qui annonce : "L'application n'a pas réussi à démarrer correctement (0xc000007b). Cliquez sur OK pour fermer l'application."

    Je tiens à préciser que cette erreur n'est en rien nocive, mais m'empêche de travailler avec SDL_image (dont j'ai énormément besoin pour mes projets.)
    Ce que je ne comprends pas, c'est que les autres suppléments de la SDL que j'utilise fonctionnent sans aucun problème (SDL_mixer et SDL_gfx, du moins : je n'ai pas encore testé SDL_ttf et SDL_anim.)

    J'ai suivi toutes les étapes : de l'installation aux linkers, mais rien à faire. A la base, C::B me disait qu'il manquait SDL2_image.dll (je précise que je n'utilise pas SDL2, mais SDL 1.2.) Je télécharge SDL2_image.dll, puis l'erreur apparait (et là, je ne peux plus exécuter le programme.)
    La compilation se passe nickel, mais dès qu'il s'agit de l'exécution... erreur 0xc000007b.

    J'ai regardé sur Internet d'où cela pouvait venir, et apparemment ce serait un problème de compatibilité 32/64 bit, mais j'ai essayé les deux versions de chaque SDL_image que je téléchargeais (et je les ai tous téléchargées) et rien ne corrige ce bug.
    J'ai également essayé de réinstaller C::B ou ce qui est nécessaire à la réinstallation pour retirer cette erreur, mais rien n'y fait.

    C'est pourquoi, en ces heures sombres, je me tourne vers vous, chers "collègues" développeurs.
    Si vous avez déjà eu cette erreur et que vous vous en êtes sortis, j'espère que vous pourriez m'aider.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Bonjour,

    Si vous dites utiliser SDL_Image 1, pourquoi il demande la DLL de SDL_image 2 ?

    En effet, si vous liez le .a de SDL_Image 1, il demandera la DLL de SDL_Image 1 (même si je ne suis pas sur qu'elle soit compatible avec un programme SDL 2.)

    L'erreur que vous avez apparait généralement lorsque vous avez une incompatibilité entre les .a et la DLL utilisée. Cela peut être au niveau 32/64 bits, mais aussi, au niveau d'une non correspondance des versions.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    J'utilise SDL 1.2 et SDL_image 1.2.12 (trouvé sur le site libsdl.org)
    C'est donc pour ça que je ne comprends pas le problème avec le SDL2_image.dll...
    De toute façon, peu importe la version que j'installe, l'erreur revient à chaque fois.
    L'erreur apparaît lorsque la bibliothèque est appelée.
    Sinon, il arrive parfois que l'erreur ne s'affiche pas (et que je peux démarrer la console) mais que je n'arrive pas à afficher les images voulues...
    Je suis encore nouveau dessus et je ne comprends pas comment ça fonctionne, mais normalement j'ai tout fait correctement (de ce qu'on m'a dit.)

    En ce moment, j'ai réussi à faire disparaître l'erreur, mais rien ne s'affiche (ce qui n'est pas vraiment mieux.)

    Mais si c'est une non-correspondance des versions, cela veut dire que SDL 1.2 et SDL_image 1.2 sont incompatibles ?

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    S'il vous demande une DLL SDL2*, c'est que vous liez votre programme avec SDL_image2
    Peux t-on connaitre votre configuration de l'IDE ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    J'ai retiré SDL2_image pour voir, et bizarrement, il ne me le demande plus.
    J'utilise Code::Blocks 13.12 (je l'ai réinstallé au cas où le problème viendrait de là.)

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Ce n'est pas bizarre
    Vous dites au compilateur : utilise les fonctions de SDL2_image, et après, à l'exécution, vous ne lui donnez pas les fonctions. Du coup, le système râle.

    Est ce que l'application fonctionne ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Je vous passe mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    #include <iostream>
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL\SDL.h>
    #include <SDL_mixer.h>
    #include <SDL_image.h>
    #include <SDL_ttf.h>
    #include <SDL_rotozoom.h>
    #define TIME 20
     
    typedef struct
    {
        char key[SDLK_LAST];
        int mousex,mousey;
        int mousexrel,mouseyrel;
        char mousebuttons[8];
        char quit;
    } Input;
     
    void UpdateEvents(Input* in)
    {
        SDL_Event event;
        while(SDL_PollEvent(&event))
        {
            switch (event.type)
            {
            case SDL_KEYDOWN:
                in->key[event.key.keysym.sym]=1;
                break;
            case SDL_KEYUP:
                in->key[event.key.keysym.sym]=0;
                break;
            case SDL_MOUSEMOTION:
                in->mousex=event.motion.x;
                in->mousey=event.motion.y;
                in->mousexrel=event.motion.xrel;
                in->mouseyrel=event.motion.yrel;
                break;
            case SDL_MOUSEBUTTONDOWN:
                in->mousebuttons[event.button.button]=1;
                break;
            case SDL_MOUSEBUTTONUP:
                if(event.button.button != SDL_BUTTON_WHEELUP && event.button.button != SDL_BUTTON_WHEELDOWN)
                in->mousebuttons[event.button.button]=0;
                break;
            case SDL_QUIT:
                in->quit = 1;
                break;
            default:
                break;
            }
        }
    }
     
    int Draw(SDL_Surface *surface, char *image_path, int x_pos, int y_pos)
    {
        SDL_Surface *image = IMG_Load (image_path);
        if (!image)
        {
            printf ("IMG_Load: %s\n", IMG_GetError ());
            return -1;
        }
        SDL_Rect rcDest = {x_pos, y_pos, 0, 0};
        SDL_BlitSurface(image, NULL, surface, &rcDest);
        SDL_Flip(surface);
        return 0;
    }
     
    void draw(SDL_Surface* screen,SDL_Surface* fond,SDL_Rect &position)
    {
        SDL_BlitSurface(fond, NULL, screen, &position);
        SDL_Flip(screen);
    }
     
    void play(Mix_Music* track, int n)
    {
        Mix_PlayMusic(track, n);
    }
     
    int main ( int argc, char** argv )
    {
        Input in;
        memset(&in,0,sizeof(in));
        SDL_Surface *screen = NULL, *fond = NULL, *fondVide = NULL, *fond2 = NULL, *rotation = NULL, *mario = NULL, *sol = NULL;
        SDL_Rect position, position2;
        position.x = 16;
        position.y = 9;
        position2.x = 325;
        position2.y = 165;
        double angle = 0;
        SDL_Init(SDL_INIT_VIDEO);
        IMG_Init(IMG_INIT_PNG);
        screen = SDL_SetVideoMode(800, 450, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
        SDL_WM_SetCaption("The Game", NULL);
        Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 1024);
        Mix_Music *track01 = NULL;
        track01 = Mix_LoadMUS("Silver City.mp3");
        fond = SDL_LoadBMP("Agent From Heaven.bmp");
        fondVide = SDL_LoadBMP("carrenoir.bmp");
        fond2 = SDL_LoadBMP("cb.bmp");
        if(screen == NULL)
        {
            fprintf(stderr, "Impossible : %s\n", SDL_GetError());
            exit(EXIT_FAILURE);
        }
        int AcTime = 0, PrevTime = 0;
        while(!in.key[SDLK_ESCAPE] && !in.quit)
        {
            UpdateEvents(&in);
            if (in.mousebuttons[SDL_BUTTON_MIDDLE])
            {
                AcTime = SDL_GetTicks();
                if (AcTime - PrevTime > TIME)
                {
                    angle += 9;
                    PrevTime = AcTime;
                }
                else
                {
                    SDL_Delay(TIME - (AcTime - PrevTime));
                }
                SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
                rotation = rotozoomSurface(fond2, angle, 1.0, 1);
                SDL_BlitSurface(rotation, NULL, screen, &position2);
                SDL_FreeSurface(rotation);
                SDL_Flip(screen);
            }
            if (in.mousebuttons[SDL_BUTTON_LEFT])
            {
                draw(screen,fond,position);
                play(track01, -1);
            }
            if (in.mousebuttons[SDL_BUTTON_RIGHT])
            {
                draw(screen,fondVide,position);
            }
            if (in.key[SDLK_s])
            {
                draw(screen,fond2,position2);
            }
            if (in.key[SDLK_a])
            {
                Draw(sol, "Sol.png", 80, 0);
                Draw(mario, "Mario.png", 376, 172);
            }
        }
        SDL_FreeSurface(mario);
        SDL_FreeSurface(sol);
        SDL_FreeSurface(fondVide);
        SDL_FreeSurface(fond);
        SDL_FreeSurface(screen);
        Mix_CloseAudio();
        SDL_Quit();
        return EXIT_SUCCESS;
    }
    Voilà comment ça se présente :
    J'ai bien SDL_image.h (le header trouvé dans la version 1.2.12 téléchargée.)
    J'utilise la fonction Draw (avec "D" majuscule) pour dessiner/afficher les images PNG.
    J'initie les surfaces, ainsi que IMG_Init(IMG_INIT_PNG); pour les PNG.
    J'utilise ma fonction quand j'appuie sur "a", et là : rien ne se passe.

    Donc l'application fonctionne quand il ne s'agit pas d'utiliser SDL_image, et j'ai viré tout ce qui était SDL2_image, donc je ne comprends pas.

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Peut être sans rapport, mais faire le chargement d'une image dans une fonction de dessin (Draw) est une très très mauvaise idée. D'une part, le chargement est "lent" (plus lent que le reste), et en plus, vous ne libérez jamais la mémoire utilisée pour l'image chargée, donc vous avez une fuite de mémoire ... dans la boucle de rendu (le pire).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé de faire comme vous dites, mais l'erreur qui avait auparavant disparu revient (elle est revenue de manière "définitive", d'ailleurs...)
    Je vais laisser le script tel que vous m'avez demandé de le modifier, mais l'erreur est revenue (case départ, donc...)

  10. #10
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    L'erreur ne peux que venir d'une incohérence entre les .lib/.a inclut dans le projet et les DLL utilisées.

    Pour l'élément signalé tout à l'heure, il est à corriger. C'est une chose sure.

    De plus, n'utilisez pas '\' pour les chemins des include, ce n'est pas compatible avec les autres systèmes (autre que Windows).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    J'ai utilisé SDL_image.lib et ai ajouté un linker lSDL_image sur la fenêtre de droite des linkers (Other linker options.)

    Je pense avoir transformé mon script de manière à ne pas tout le temps initialiser les variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    #include <iostream>
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL.h>
    #include <SDL_mixer.h>
    #include <SDL_image.h>
    #include <SDL_ttf.h>
    #include <SDL_rotozoom.h>
    #define TIME 20
    
    typedef struct
    {
        char key[SDLK_LAST];
        int mousex,mousey;
        int mousexrel,mouseyrel;
        char mousebuttons[8];
        char quit;
    } Input;
    
    void UpdateEvents(Input* in)
    {
        SDL_Event event;
        while(SDL_PollEvent(&event))
        {
            switch (event.type)
            {
            case SDL_KEYDOWN:
                in->key[event.key.keysym.sym]=1;
                break;
            case SDL_KEYUP:
                in->key[event.key.keysym.sym]=0;
                break;
            case SDL_MOUSEMOTION:
                in->mousex=event.motion.x;
                in->mousey=event.motion.y;
                in->mousexrel=event.motion.xrel;
                in->mouseyrel=event.motion.yrel;
                break;
            case SDL_MOUSEBUTTONDOWN:
                in->mousebuttons[event.button.button]=1;
                break;
            case SDL_MOUSEBUTTONUP:
                if(event.button.button != SDL_BUTTON_WHEELUP && event.button.button != SDL_BUTTON_WHEELDOWN)
                in->mousebuttons[event.button.button]=0;
                break;
            case SDL_QUIT:
                in->quit = 1;
                break;
            default:
                break;
            }
        }
    }
    
    int Draw(SDL_Surface *surface, SDL_Surface *image, int x_pos, int y_pos)
    {
        if (!image)
        {
            printf ("IMG_Load: %s\n", IMG_GetError ());
            return -1;
        }
        SDL_Rect rcDest = {x_pos, y_pos, 0, 0};
        SDL_BlitSurface(image, NULL, surface, &rcDest);
        SDL_Flip(surface);
        return 0;
    }
    
    void draw(SDL_Surface* screen,SDL_Surface* fond,SDL_Rect &position)
    {
        SDL_BlitSurface(fond, NULL, screen, &position);
        SDL_Flip(screen);
    }
    
    void play(Mix_Music* track, int n)
    {
        Mix_PlayMusic(track, n);
    }
    
    int main ( int argc, char** argv )
    {
        Input in;
        memset(&in,0,sizeof(in));
        SDL_Surface *screen = NULL, *fond = NULL, *fondVide = NULL, *fond2 = NULL, *rotation = NULL, *mario = NULL, *sol = NULL;
        SDL_Rect position, position2;
        position.x = 16;
        position.y = 9;
        position2.x = 325;
        position2.y = 165;
        double angle = 0;
        SDL_Init(SDL_INIT_VIDEO);
        IMG_Init(IMG_INIT_PNG);
        screen = SDL_SetVideoMode(800, 450, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
        SDL_WM_SetCaption("The Game", NULL);
        Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 1024);
        Mix_Music *track01 = NULL;
        track01 = Mix_LoadMUS("Silver City.mp3");
        fond = SDL_LoadBMP("Agent From Heaven.bmp");
        fondVide = SDL_LoadBMP("carrenoir.bmp");
        fond2 = SDL_LoadBMP("cb.bmp");
        mario = IMG_Load ("Mario.png");
        sol = IMG_Load ("Sol.png");
        if(screen == NULL)
        {
            fprintf(stderr, "Impossible : %s\n", SDL_GetError());
            exit(EXIT_FAILURE);
        }
        int AcTime = 0, PrevTime = 0;
        while(!in.key[SDLK_ESCAPE] && !in.quit)
        {
            UpdateEvents(&in);
            if (in.mousebuttons[SDL_BUTTON_MIDDLE])
            {
                AcTime = SDL_GetTicks();
                if (AcTime - PrevTime > TIME)
                {
                    angle += 9;
                    PrevTime = AcTime;
                }
                else
                {
                    SDL_Delay(TIME - (AcTime - PrevTime));
                }
                SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
                rotation = rotozoomSurface(fond2, angle, 1.0, 1);
                SDL_BlitSurface(rotation, NULL, screen, &position2);
                SDL_FreeSurface(rotation);
                SDL_Flip(screen);
            }
            if (in.mousebuttons[SDL_BUTTON_LEFT])
            {
                draw(screen,fond,position);
                play(track01, -1);
            }
            if (in.mousebuttons[SDL_BUTTON_RIGHT])
            {
                draw(screen,fondVide,position);
            }
            if (in.key[SDLK_s])
            {
                draw(screen,fond2,position2);
            }
            if (in.key[SDLK_a])
            {
                Draw(sol, screen, 80, 0);
                Draw(mario, screen, 376, 172);
            }
        }
        SDL_FreeSurface(mario);
        SDL_FreeSurface(sol);
        SDL_FreeSurface(fondVide);
        SDL_FreeSurface(fond);
        SDL_FreeSurface(screen);
        Mix_CloseAudio();
        SDL_Quit();
        return EXIT_SUCCESS;
    }
    Pour le chemin des include, ai-je corrigé l'élément dont vous parliez ou c'est encore autre chose ?

  12. #12
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Pour l'include, vous avez corrigé
    (Même si pour une compatibilité maximale, il faut mettre #include <SDL/SDL.h>, mais bon, ça risque de ne pas être compatible avec votre configuration.)

    Avez-vous toujours la même erreur ?
    Ne serait-ce pas un problème avec SDL et non SDL_image ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Je suis sur Windows 8, 64 bit (au cas où ça aiderait, niveau configuration.)
    L'erreur est aussi persistante qu'un cafard, donc malheureusement, oui...
    S'il y a juste SDL_image qui galère, ça m'étonnerait. Quand je debug, j'ai ces trois lignes là qui apparaissent :
    C:/.../The Game/main.cpp:91: undefined reference to `IMG_Init'
    C:/.../The Game/main.cpp:100: undefined reference to `IMG_Load'
    C:/.../The Game/main.cpp:101: undefined reference to `IMG_Load'

    Dans le pire des cas, je compte tout réinstaller une dernière fois, mais je préfère quand même ne pas en arriver là...

  14. #14
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    L'erreur que vous montrez actuellement est l'erreur décrite ici : http://alexandre-laurent.developpez....theque/#LIII-B

    Cela indique que vous n'avez pas indiquer la bibliothèque SDL_image à l'éditeur de liens. Vous avez du le faire pour la cible "Release" mais pas pour "Debug".
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    J'ai regardé sur Internet d'où aurait pu venir l'erreur, mais malheureusement, ça aboutit au même problème, vu que j'ai essayé tout ce qu'ils ont proposé.
    Sinon, il parait que la SFML est mieux pour créer des jeux (je demande car je suis tombé sur des gens qui me le disent, et si c'est le cas, je testerai peut-être histoire de voir si j'ai moins de problèmes qu'avec la SDL...)

  16. #16
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Il n'y a pas de choses pour dire que la SFML est mieux pour créer des jeux, les deux font relativement la même chose.
    Juste, il faut comprendre que c'est la SDL 2 qui est équivalente à la SFML, car la SDL 1 souffrait que quelques bogues/problèmes.

    Voici ce qu'apporte SDL 2 : http://jeux.developpez.com/actu/5979...GL-3-0-arrive/

    Une autre solution est d'utiliser les template proposés par Developpez.com : http://jeux.developpez.com/telecharg.../709/Templates

    Vous pouvez avoir un projet correctement configuré, prêt à fonctionner ici : http://jeux.developpez.com/telecharg...ur-Code-Blocks
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Donc, si je garde mon projet tel qu'il est (en enlevant tous les linkers) et que je réinstalle Code::Blocks, que je remplace la SDL par la SDL2 et que je télécharge SDL2_image et SDL2_ttf, ça devrait fonctionner ?
    De toute manière, je pense changer la SDL 1.2 par la 2.0 pour être tranquille, ne sait-on jamais.

  18. #18
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    La reinstallation de Code::Blocks ne changera rien.
    Pour la SDL 2, si vous souhaitez y passer, alors soit. Je vous conseille ce tutoriel pour avancer et comprendre ce qui se passe : http://alexandre-laurent.developpez....configuration/

    Mais actuellement, vos problèmes sont liés à une mauvaise configuration et non à la SDL.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  19. #19
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 18
    Points : 2
    Points
    2
    Par défaut
    Je sais très bien que les problèmes viennent de ma configuration, mais si je me mets à travailler avec une "vieille" version de SDL, il y aurait peut-être quelques problèmes à éviter si j'installe SDL2.
    Et quand je dis que je vais réinstaller Code::Blocks, c'est que je vais tout effacer de mon ordinateur (mais je vais créer un back-up avant, juste au cas où) et tout réinstaller, comme si c'était la première fois que je le faisais.

  20. #20
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Bon courage, revenez nous voir si cela marche (ou si cela ne marche pas, aussi).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/03/2014, 10h30
  2. Réponses: 2
    Dernier message: 11/10/2013, 13h02
  3. Réponses: 1
    Dernier message: 23/12/2011, 18h52
  4. Réponses: 2
    Dernier message: 21/04/2010, 10h51
  5. Réponses: 3
    Dernier message: 23/07/2007, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo