prob SDL

Discussion dans 'Web, design' créé par leprincemiri, 24 Novembre 2007.

Statut de la discussion:
Fermée.
  1. Online
    leprincemiri ex membre
    Hello

    j ai un petit probleme avec un programme qui utilise SDL.
    J ai suivi un tuto qui me disait comment l installer et tout et tout et lorsque j essaye de compiler le code il me dit

    "SDL.h : No such file or directory"

    je tourne sous windows et j utilise DEV C++

    Merci d avance

    edit : voici mon code

    Code:
    
    #include <SDL.h>
    #include <iostream>
    using namespace std;
    
    const int WIDTH = 640;
    const int HEIGHT = 480;
    
    int main ()
    {
      SDL_Event;
      SDL_Surface *screen;
      int done =0;
      
      if (SDL_Init {SDL_INIT_VIDEO}!=0)
      {
    	 cerr<<"probleme pour initialiser SDL"<<SDL_GetError()<<endl;
    	 return 1;
      }
      
      SDL_WM_SetCaption("Programme SDL de base", NULL);
      
      screen = SDL_SetVideoMode(WIDTH,HEIGHT, 32, SDL_DOUBLEBUF | SDL_HWSURFACE);
    	if(screen==NULL)
    		 done = 1;
      while (!done)
      {
    	 int SDL_PushEvent (SDL_Event *event);
    	 int SDL_PollEvent (SDL_Event *event);
    	 
    	 while (SDL_PollEvent (&event))
    	 {
    		   switch (event.type)
    		   {
    				  case SDL_QUIT : done = 1;
    								  break;
    								  
    				  case SDL_KEYUP : if(event.key.keysym.sym==SDLK_q)
    								   done = 1;
    								   break;
    				  
    				  default :
    							break;
    		   }   
    	 }
      }
      
      SDL_Quit ();
    }
    
    
    
    
    leprincemiri, 24 Novembre 2007
    #1
  2. Offline
    tqz_ Elite
    ton SDL.H est-il dans la librairie du compilateur?

    ou sinon essaye avec un #include <"c:/"chemin d'acces"/SDL.H">
    tqz_, 24 Novembre 2007
    #2
  3. Offline
    Kuzco El Lama Bazinga!
    c'est clairement clair que le probleme vient du fait qu'il n'arrive pas à lire le header ...
    Kuzco El Lama, 24 Novembre 2007
    #3
  4. Online
    leprincemiri ex membre
    c est bon le probleme est resolu (du moins pour la lecture de l header), j ai installe avec les devpacks
    maintenant je vais teste le programme :p

    edit:
    voila, j ai deja un probleme lol

    Code:
    #include <iostream>
    #include <SDL/SDL.h>
    using namespace std;
    
    int main (int arg, char **argv)
    {
      SDL_Surface *sScreen;	
    
      void init_SDL()
      {
    	SDL_Init (SDL_INIT_VIDEO);
    	sScreen = SDL_SetVideoMode (800, 600, 32, SDL_HWSURFACE | DOUBLEBUF | SDL_FULLSCREEN);
    	SDL_ShowCursor (0);
      }
      
      void Quit ()
      {
    	SDL_FreeSurFace (screen);
    	SDL_ShowCursor (1);
    	SDL_Quit;
    	exit (0);
      }
      
      SDL_Quit ();
    
      return 0;
    }
    
    et voila les erreurs a la compilation :

    C:\Dev-Cpp\test sdl\Untitled1.cpp In function `int SDL_main(int, char**)':
    9 C:\Dev-Cpp\test sdl\Untitled1.cpp expected primary-expression before "void"
    9 C:\Dev-Cpp\test sdl\Untitled1.cpp expected `;' before "void"
    16 C:\Dev-Cpp\test sdl\Untitled1.cpp expected primary-expression before "void" 16 C:\Dev-Cpp\test sdl\Untitled1.cpp expected `;' before "void"
    C:\Dev-Cpp\test sdl\Makefile.win [Build Error] [Untitled1.o] Error 1
    leprincemiri, 24 Novembre 2007
    #4
  5. Offline
    ailless Asimov, Sagan, Carlin, Hitchens
    Code:
    #include <iostream>
    #include <SDL/SDL.h>
    
    using namespace std;
    
    int main (void)
    {
      SDL_Surface *sScreen;
    
      SDL_Init(SDL_INIT_VIDEO);
      sScreen = SDL_SetVideoMode (800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_FULLSCREEN);
    
      SDL_FreeSurface(sScreen);
      SDL_Quit ();
    
      return 0;
    }
    
    T'apprends la SDL sur quel site, soit tu vas beaucoup trop vite dans le tuto, soit c'est très mal fait ? Je ne t'ai pas mis la vérification des codes d'erreurs mais normalement tu dois tester si SDL_Init s'est bien passé (erreur = -1).
    Je te conseille d'aller sur www.siteduzero.com et de lire INTEGRALEMENT les cours C/C++/SDL.

    Ce que je te déconseille aussi de faire c'est d'employer la constante de plein écran (SDL_FULLSCREEN) enfin là ça va vu que tu ne fais pas de pauses dans ton programme donc elle se referme directement mais si t'avais fait une pause à un quelquonque endroit t'étais parti pour un exit barbare.

    edit : Ca c'est pour le deuxième code mais comment tu passes du premier code (plus ou moins bien fait) au deuxième? o_O
    ailless, 25 Novembre 2007
    #5
  6. Online
    leprincemiri ex membre
    c etait deux sites differents sur lesquels j ai suivi les tutos, pour le deuxieme code c etait le premier tuto...
    pour le moment je programme que en C++
    leprincemiri, 25 Novembre 2007
    #6
  7. Offline
    ailless Asimov, Sagan, Carlin, Hitchens
    Je te conseille quand même de changer de tuto et d'aller sur le www.siteduzero.com :)
    ailless, 25 Novembre 2007
    #7
Statut de la discussion:
Fermée.