Partage
  • Partager sur Facebook
  • Partager sur Twitter

Petit problème de headers

Je pense

    24 octobre 2006 à 0:07:19

    Bonjour à tous.

    Voila je suis nouveau dans le SDL, et j'ai un petit problème que je ne comprend pas.

    Le problème est le suivant :

    Grâce au headers SDL_image.h, on peux mettre d'autre fichier image que le BMP.

    Pour le moment tous est clair. La est le problème donc, c'est que avec ce code que je comprens parfaitement et encore heureux, je n'arrive pas a lancer la WINDOWS. Alors que j'ai tout bien instalé comme il l'indique si bien Mateo, le programme ne fonctionne pas.

    L'erreur est ICI

    Voici mon code.

    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <SDL/SDL_image.h>

    void pause();

    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL, *imageDeFond = NULL, *Moi = NULL;
       
        SDL_Rect positionFond, positionMoi;
       
        positionFond.x = (1024 / 2) - (800 / 2);
        positionFond.y = (768 / 2) - (600 / 2);
        positionMoi.x = (1024 / 2) - (500 / 2);
        positionMoi.y = (768 / 2) - (260 / 2);
       
        SDL_Init(SDL_INIT_VIDEO);
        SDL_WM_SetIcon(IMG_Load("iconde.bmp"), NULL);
       
        ecran = SDL_SetVideoMode(1024, 768, 32, SDL_HWSURFACE | SDL_RESIZABLE);
       
        SDL_WM_SetCaption("Http://zalacain.antonio.free.Fr/Claire/ Code Pour Programme SA et SG", NULL);
       
        imageDeFond = IMG_Load("Mon_Image.bmp");
       
        SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);
       
        Moi = IMG_Load("Moi.png");
       
        SDL_BlitSurface(Moi, NULL, ecran, &positionMoi);
       
        SDL_Flip(ecran);
           
        pause();   
       
        SDL_FreeSurface(imageDeFond);
        SDL_FreeSurface(Moi);
       
        SDL_Quit();

        return EXIT_SUCCESS;
    }

    void pause()
    {
        int continuer = 1;
        SDL_Event event;

        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
            }
        }
    }


    Merci de votre aide.

    Elle me seras supert efficase par la suite.

    Sur ce bonne nuit à toute l'équipe,

    Vive le Site du Zero,

    Vive la programmation
    • Partager sur Facebook
    • Partager sur Twitter
      24 octobre 2006 à 16:40:10

      deja il faut metre la declaration de l'icone AVANT la déclaration de la fenêtre, et puis je sui pas sur de ton code avec le moi = IMG_Load. l'erreur vient surement de par là.

      Sinon essaye d'utiliser ton debugger (F8 sous code::blocks) et voit ce qu'il te dit.
      • Partager sur Facebook
      • Partager sur Twitter
        24 octobre 2006 à 16:42:43

        T'as linké SDL_Image.a ???
        • Partager sur Facebook
        • Partager sur Twitter
          24 octobre 2006 à 17:45:33

          Bonjour à tous.

          Voila j'ai un peux changé le code. Le resultat est toujour est encore le même o_O:colere2:

          Ou tu Link SDL_Image.a ??

          Merci

          Mon code

          #include <stdlib.h>
          #include <stdio.h>
          #include <SDL/SDL.h>
          #include <SDL/SDL_image.h>
          #include "pause.h"

          int main(int argc, char* argv[])
          {
               SDL_Surface *ecran = NULL, *image1 = NULL, *image2 = NULL, *image3 = NULL; // Variable Null
               SDL_Rect position1, position2, position3; // Position des images
               
               position1.x = (1100 / 2) - (1024 / 2);
               position1.y = (850 / 2) - (768 / 2);
               position2.x = (1100 / 2) - (400 / 2);
               position2.x = (850 / 2) - (500 / 2);
               position3.x = (1100 / 2) - (350 / 2);
               position3.y = (850 / 2) - (400 / 2);   
             
             
               SDL_Init(SDL_INIT_VIDEO);// Ouverture d'une PAge WINDOWS
               SDL_WM_SetIcon(IMG_Load("image3.bmp"), NULL);// L'icone de la WINDOWS
             
               ecran = SDL_SetVideoMode(1100, 850, 32, SDL_HWSURFACE | SDL_RESIZABLE);// Caractéristique de la WINDOWS
               image1 = IMG_Load("image4.bmp");// Appelation de L'image de Fond 1024 * 768
               SDL_WM_SetCaption("Test", NULL);// Titre de La WINDOWS
             
               image2 = IMG_Load("image1.bmp");// Appelation de l'image bougable 400*500
               image3 = IMG_Load("image2.bmp"); // Appelation de L'image DE FOND Stable 350*400
             
               SDL_BlitSurface(image1, NULL, ecran, &position1);// Collage de l'image sur la WINDOWS
               SDL_BlitSurface(image2, NULL, ecran, &position2);// Collage de l'image sur la WINDOWS
               SDL_BlitSurface(image3, NULL, ecran, &position3);// Collage de l'image sur la WINDOWS
             
               SDL_Flip(ecran);// Mise a jour de la WINDOWS
             
               pause();// Pause du grace a la fonction void pause();
             
               SDL_FreeSurface(image1);// Libert de la Memoir Vive
               SDL_FreeSurface(image2);// Libert de la Memoir Vive
               SDL_FreeSurface(image3);// Libert de la Memoir Vive
               SDL_Quit();// Ferme la WINDOWS Avec aucun Problem
             
              return EXIT_SUCCESS; // Return Sans aucun problem
          }


          • Partager sur Facebook
          • Partager sur Twitter
            24 octobre 2006 à 17:51:28

            Voir tuto de m@théo sur les images à la fin...

            Citation : m@théo

            Si vous êtes sous Code::Blocks par exemple, allez dans le menu Projects / Build options. Dans l'onglet Linker, cliquez sur le bouton "Add" et indiquez où se trouve le fichier SDL_image.lib
            Si on vous demande "Keep as a relative path ?", répondez ce que vous voulez ça ne changera rien dans l'immédiat. Je recommande de répondre "Non" personnellement :p

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              24 octobre 2006 à 18:22:24

              Oui à chaque fois (du moins souvent) que tu utilises une bibliothèque, tu doit la linker. Si tu vois des érreurs style "Undefined reference", en général c'est un linkage qui manque à l'appel.
              • Partager sur Facebook
              • Partager sur Twitter
                24 octobre 2006 à 19:00:23

                Merci, mais je ne c'est pas linké sous Dev-C++ :euh:

                Mais je vais chercher Merci en tous cas.

                01 h 14 --> JE ne trouve pas commen linké les fichies.

                Vous pouvez m'aider s'il-vous-plais. MEric de votre part.
                • Partager sur Facebook
                • Partager sur Twitter

                Petit problème de headers

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown