Partage
  • Partager sur Facebook
  • Partager sur Twitter

visual c++ express et la SDL

plein d'erreur étranges...

    25 juillet 2006 à 18:36:08

    Bonjour à tous.

    J'ai enfin réussi à installer la SDL sous visual C++ express (merci djo0012 ;) ). Je fais "générer la solution" et la surprise : une cinquantaine d'erreur toutes très douteuses...

    Exemple:

    J'ai créé une structure. Pour pas prendre trop de place dans main j'ai fais une macro dans un .h:
    #define lesCartes() carte cavalierDuNord; \
                           /* cavalier du nord*/  \

              cavalierDuNord.pvMax = 6;  \
          cavalierDuNord.pv = 6;  \
          cavalierDuNord.ataque = 5; \
          cavalierDuNord.deplacement = 5; \
          cavalierDuNord.lancier = -2; \
          cavalierDuNord.guerrier = 2; \
          cavalierDuNord.archer = 1; \
          cavalierDuNord.bete = 0; \
          cavalierDuNord.chevale = 0; \
          cavalierDuNord.dragon = 0; \
          cavalierDuNord.hero = 0; \
          cavalierDuNord.nain = 0; \
          cavalierDuNord.elfe = 0; \
          cavalierDuNord.arbalete = 0; \
          cavalierDuNord.type = chevale; \
          cavalierDuNord.petiteImageDeCarte = SDL_LoadBMP("cavalierDuNord.bmp"); \
          cavalierDuNord.positionCarte.x = 0;\
          cavalierDuNord.positionCarte.y = 0;\
          cavalierDuNord.joueur = 0\
    // après il y en a d'autre...


    Et il met:
    c:\documents and settings\loic\mes documents\visual studio 2005\projects\ultime7\ultime7\deffsructcarte.h(35) : error C2143: erreur de syntaxe : absence de '{' avant '.'
    c:\documents and settings\loic\mes documents\visual studio 2005\projects\ultime7\ultime7\deffsructcarte.h(35) : error C2059: erreur de syntaxe : '.'
    c:\documents and settings\loic\mes documents\visual studio 2005\projects\ultime7\ultime7\deffsructcarte.h(36) : error C2143: erreur de
    ect jusqu'à 84...


    Voilà j'espère que quelqu'un pouras m'aider...

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      26 juillet 2006 à 10:40:37

      il n'y a pas de { dans le code que tu as mis, donc l'erreur est autre part
      • Partager sur Facebook
      • Partager sur Twitter
        26 juillet 2006 à 10:44:01

        Non c'est bien dans ces ligne de codes qu'il y a une "erreur".

        Je poste tout le code source de ce fichier si ça peut aider:



        enum{lancier,bete,chevale,dragon,hero,nain,elfe,guerrier,archer,arbalete,vide};
        typedef struct carte carte;
             struct carte
             {     
             long pvMax;
             long pv;
             long ataque;
             long deplacement;
             long type;     
             long lancier;
             long bete;
             long chevale;
             long dragon;
             long hero;
             long nain;
             long elfe;
             long guerrier;
             long archer;
             long arbalete;
             long joueur;
             SDL_Rect positionCarte;
             SDL_Surface *petiteImageDeCarte;
             };





        #define lesCartes() carte cavalierDuNord; \
                               /* cavalier du nord*/  \

                  cavalierDuNord.pvMax = 6;  \
              cavalierDuNord.pv = 6;  \
              cavalierDuNord.ataque = 5; \
              cavalierDuNord.deplacement = 5; \
              cavalierDuNord.lancier = -2; \
              cavalierDuNord.guerrier = 2; \
              cavalierDuNord.archer = 1; \
              cavalierDuNord.bete = 0; \
              cavalierDuNord.chevale = 0; \
              cavalierDuNord.dragon = 0; \
              cavalierDuNord.hero = 0; \
              cavalierDuNord.nain = 0; \
              cavalierDuNord.elfe = 0; \
              cavalierDuNord.arbalete = 0; \
              cavalierDuNord.type = chevale; \
              cavalierDuNord.petiteImageDeCarte = SDL_LoadBMP("cavalierDuNord.bmp"); \
              cavalierDuNord.positionCarte.x = 0;\
              cavalierDuNord.positionCarte.y = 0;\
              cavalierDuNord.joueur = 0;\
                                                               /* armé d'artas*/  \
              carte armeDartas;\

              armeDartas.pvMax = 15;\
              armeDartas.pv = 15;\
              armeDartas.ataque = 4;\
              armeDartas.deplacement = 3;\
              armeDartas.lancier = 0;\
              armeDartas.guerrier = 0;\
              armeDartas.archer = 1;\
              armeDartas.bete = 0;\
              armeDartas.chevale = 3;\
              armeDartas.dragon = 0;\
              armeDartas.hero = 0;   \
              armeDartas.nain = 0;   \
              armeDartas.elfe = 0;   \
              armeDartas.arbalete = 0;  \
              armeDartas.type = guerrier;  \
              armeDartas.positionCarte.x = 0;\
              armeDartas.positionCarte.y = 0;\
              armeDartas.joueur = 0;\
                                                  /* guerrierDuNord*/  \
              carte guerrierDuNord;\

           guerrierDuNord.pvMax = 7;\
              guerrierDuNord.pv = 7;\
              guerrierDuNord.ataque = 5;\
              guerrierDuNord.deplacement = 3;\
              guerrierDuNord.lancier = 0;\
              guerrierDuNord.guerrier = 0;\
              guerrierDuNord.archer = 2;\
              guerrierDuNord.bete = 0;\
              guerrierDuNord.chevale = -1;\
              guerrierDuNord.dragon = 0;\
              guerrierDuNord.hero = 0;\
              guerrierDuNord.nain = 0;\
              guerrierDuNord.elfe = 0;\
              guerrierDuNord.arbalete = 1;\
              guerrierDuNord.type = guerrier;\
              guerrierDuNord.positionCarte.x = 0;\
              guerrierDuNord.positionCarte.y = 0;\
              guerrierDuNord.joueur = 0;\   



        • Partager sur Facebook
        • Partager sur Twitter
          26 juillet 2006 à 11:24:41

          c'est quoi les "\" a toute les ligne, perso j'ai jamais vu cela en c...resultat, erreure de syntaxe et je crois que c'est ce que tu as comme erreure?
          • Partager sur Facebook
          • Partager sur Twitter
            26 juillet 2006 à 11:53:35

            Mais non c'est normale c'est une macro...
            • Partager sur Facebook
            • Partager sur Twitter
              26 juillet 2006 à 12:15:36

              Il ne manquerait pas une accolade fermée après le ENUM???
              • Partager sur Facebook
              • Partager sur Twitter
                26 juillet 2006 à 12:26:07

                Bas non regarde :

                enum{lancier,bete,chevale,dragon,hero,nain,elfe,guerrier,archer,arbalete,vide};
                • Partager sur Facebook
                • Partager sur Twitter
                  26 juillet 2006 à 15:07:37

                  çà peut être du à ton \ sur la dernière ligne de ta macro, retire le pour voir.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 juillet 2006 à 15:10:40

                    Je l'es retiré et ça marche toujours pas...

                    Désolé pour le double sujet :(
                    • Partager sur Facebook
                    • Partager sur Twitter
                      26 juillet 2006 à 16:22:01

                      Essaye sans le commentaire pour voir ...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        26 juillet 2006 à 16:26:19

                        Met un '\' sur chaque ligne de la macro, sauf la dernière.
                        Essaie d'en mettre aussi sur les lignes vides pour voir !
                        • Partager sur Facebook
                        • Partager sur Twitter
                          26 juillet 2006 à 16:57:07

                          Merci guimers8! Maintenant il reste d'autre erreur mais bon...

                          une autre :-° :
                          long continuer = 1;


                          Et il met:
                          error C2143: erreur de syntaxe : absence de ';' avant 'type'


                          Là c'est étrange quand même non?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            27 juillet 2006 à 0:27:05

                            regarde la ligne avant c'est la que le ; doit manque (l'erreure est toujours comme cela peut-importe le compilo...)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              28 juillet 2006 à 0:52:52

                              que'est-ce qu'il y a just avant, un include, une autre declaration de variable, une autre commande ou autre chose?
                              en fait peut-tu poster le bout de code autour de cela.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                28 juillet 2006 à 9:45:08

                                Merci pour ton aide mais vu le nombre d'autre erreur et le fait que visual à encor du mal avec la SDL je suis passé à un autre projet sur dev.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  28 juillet 2006 à 12:09:13

                                  ce que je peu te conseille si tu veut faire fonctione vc++ c'est de te faire just un mini projet (genre alle prendre le code de mateo dans un des premier cour de la SDL) ou tu est certein qu'il n'y a pas d'erreure de code, donc tu pouras completement debuger la SDL avec vc++ (c'est pas beaucoup, c'est une ou 2 autre option a changer quelque part, mais je ne me souvien plus ou... la est le probleme.)

                                  mais en tout cas bonne chance dans tes projet.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    10 octobre 2006 à 0:16:14

                                    dommage d'avoir abandonné :(

                                    c'etait surement a cause du "{" collé contre le "enum"

                                    essaies voir un espace entre les 2 , ça m'est deja arrivé une fois sur un autre langage
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    visual c++ express et la SDL

                                    × 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