Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème exception SFML 2 c++  (Lu 6692 fois)

0 Membres et 1 Invité sur ce sujet

exenios

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Problème exception SFML 2 c++
« le: Juin 17, 2014, 02:06:51 pm »
Je vous écris parce que j'ai une exception que je ne comprend pas, dans un code tout simple.
Ça fait des jours que je cherche sans résultat... C'est surement une erreur toute bête.

#include <SFML/Graphics.hpp>
#include <iostream>
#include <cstdlib>

sf::Texture texture1;
sf::Texture texture2;
sf::Sprite test1;
sf::Sprite test2;

int main()
{
        sf::RenderWindow window(sf::VideoMode(700, 700), "test");

        if (!texture1.loadFromFile("tile/test.png"))
        {
                return -1;
        }

        if (!texture2.loadFromFile("tile/test2.png"))
        {
                return -1;
        }
        test1.setTexture(texture1);
        test2.setTexture(texture2);

        while (window.isOpen())
        {
                sf::Event event;
                while (window.pollEvent(event))
                {
                        if (event.type == sf::Event::Closed)
                        {
                                window.close();
                        }
                }
                window.draw(test1);
                window.draw(test2);
                window.display();
                window.clear();
        }
        return 0;
}

Si vous avez une idée sur l'erreur je suis preneur. Je précise le message d'erreur :
Exception de première chance à 0x778ce3be dans game.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x87a9ecc5.
Le thread 'Thread Win32' (0x140c) s'est arrêté avec le code 0 (0x0).
Le programme '[2816] game.exe: Natif' s'est arrêté avec le code 0 (0x0).

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème exception SFML 2 c++
« Réponse #1 le: Juin 17, 2014, 02:11:02 pm »
Le code est de toute évidence hors de cause, c'est donc soit une mauvaise option dans ton projet, soit une mauvaise version de SFML par rapport à ton compilateur.
Laurent Gomila - SFML developer

exenios

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Problème exception SFML 2 c++
« Réponse #2 le: Juin 17, 2014, 06:05:26 pm »
Merci d'avoir répondu. J'ai retéléchargé la SFML mais toujours ce problème seulement quand je charge deux textures. J'ai aussi réinitialisé tous les paramètres de vc++ 2010. Dans le pire des cas je pourrais le réinstaller totalement. Ce problème est vraiment bizarre . j'espère que t'as d'autres solutions, je le réinstallerai demain et on verra. Merci quand même :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème exception SFML 2 c++
« Réponse #3 le: Juin 17, 2014, 06:48:46 pm »
Utilise ton debugger pour voir plus précisément ce qui se passe.

Tu utilises quelle version de SFML ?
Laurent Gomila - SFML developer

exenios

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Problème exception SFML 2 c++
« Réponse #4 le: Juin 17, 2014, 07:04:11 pm »
Oui j'avais oublié de préciser j'utilise SFML 2.1 version 32 bits comme le compilateur (vc++ 2010 32bits).
Mon PC est un windows 7 64 bits.
J'ai utilisé l'outil de réparation du logiciel, je vais redémarrer et je te dirai demain si c'est réglé.
J'avais déjà essayé le débogueur mais j'avais aussi une erreur "échec de la conversion en fichier COFF " je crois.
Je précise que je suis débutant en c++ et avec cette bibliothèque ;D

exenios

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Problème exception SFML 2 c++
« Réponse #5 le: Juin 17, 2014, 09:41:27 pm »
J'ai réussi à corriger le problème de la conversion en fichier COFF mais l'autre problème est toujours là. Une fois sur deux mon ordinateur ce met à biper en continu même avec un point d'arrêt, c'est très bizarre. L'erreur vient de la ligne du chargement de la première texture "
if (!texture1.loadFromFile("tile/test.png"))
"
L'erreur semble venir de l'objet "texture 1", je lui ai mis un espion qui m'a donné ces valeurs, je sais pas si elles conviennent et que l'erreur vient de là.

-      texture1   {m_size={...} m_actualSize={...} m_texture=0 ...}   sf::Texture
      sf::GlResource   {...}   sf::GlResource
-      m_size   {x=0 y=0 }   sf::Vector2<unsigned int>
      x   0   unsigned int
      y   0   unsigned int
-      m_actualSize   {x=0 y=0 }   sf::Vector2<unsigned int>
      x   0   unsigned int
      y   0   unsigned int
      m_texture   0   unsigned int
      m_isSmooth   false   bool
      m_isRepeated   false   bool
      m_pixelsFlipped   false   bool
      m_cacheId   1   unsigned __int64

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème exception SFML 2 c++
« Réponse #6 le: Juin 17, 2014, 09:43:25 pm »
Tu es sûr que tu ne mélanges pas debug et release ?
Laurent Gomila - SFML developer

exenios

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Problème exception SFML 2 c++
« Réponse #7 le: Juin 18, 2014, 11:46:35 am »
Ah oui, excuse moi, j'avais oublier de lier la bibliothèque en configuration debug.

exenios

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Problème exception SFML 2 c++
« Réponse #8 le: Juin 18, 2014, 12:20:35 pm »
Exception de première chance à 0x77dee3be dans the wtf game.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0xdd9f031b.
Exception de première chance à 0x77dee3be dans the wtf game.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0xdd9f031b.

Voila les deux exceptions. En mettant un point d'arrêt avant la boucle principale, le débogueur indique qu'il y a des problèmes avec texture1 et texture2.

-      texture1   {m_size={...} m_actualSize={...} m_texture=1 ...}   sf::Texture
      sf::GlResource   {...}                                                                           sf::GlResource
+      m_size                                {x=64 y=64 }                                     sf::Vector2<unsigned int>
+      m_actualSize                        {x=64 y=64 }                                    sf::Vector2<unsigned int>
      m_texture                          1                                                   unsigned int
      m_isSmooth                          false                                                   bool
      m_isRepeated                          false                                                 bool
      m_pixelsFlipped                  false                                                 bool
      m_cacheId                          4                                                  unsigned __int64

         

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème exception SFML 2 c++
« Réponse #9 le: Juin 18, 2014, 01:01:02 pm »
Et si tu ne mets pas de point d'arrêt, ça plante où exactement ?
Laurent Gomila - SFML developer

exenios

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Problème exception SFML 2 c++
« Réponse #10 le: Juin 18, 2014, 01:24:00 pm »
Je ne vois les exceptions que dans la sortie du débogage donc je ne peux pas te dire le moment exacte du plantage. Je ne sais pas si il y a un moyen de les voir en cours d’exécution.  Le crash peut aussi venir de l’événement close parce qu'il n'y a pas d'exception si je ferme l'application en fermant le console (c'est une application console) ou en arrêtant le débogage manuellement.
Mais il me semble que le programme plantait après l'appel de loadfromfile() (avec les points d'arrêts)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème exception SFML 2 c++
« Réponse #11 le: Juin 18, 2014, 01:47:03 pm »
Quand l'application plante, si tu l'avais lancé avec le debugger, alors ton IDE devrait pointer sur la ligne qui a provoqué le crash. Ensuite tu peux inspecter la pile des appels, ainsi que les variables locales si nécessaire.
Laurent Gomila - SFML developer

exenios

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Problème exception SFML 2 c++
« Réponse #12 le: Juin 18, 2014, 04:00:48 pm »
Je ne trouve vraiment pas la ligne du plantage. Quand je le debug je n'est aucune flèche jaune ou verte dans la colonne de gauche, j'ai juste 2 exceptions de première chances dans la sortie que je ne peux voir qu'après l'arrêt du débogage. Elles ne s'affichent pas en cours d’exécutions.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème exception SFML 2 c++
« Réponse #13 le: Juin 18, 2014, 04:10:24 pm »
Alors c'est que tu t'y prends mal.
Laurent Gomila - SFML developer

exenios

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Problème exception SFML 2 c++
« Réponse #14 le: Juin 18, 2014, 05:29:05 pm »
Je ne comprend pas du tout. Le débogueur me donne juste les exceptions à la fin pour la fermeture. C'est quand même pas compliqué d'appuyer sur F5, je vois pas trop comment je pourrais m'y prendre mal.
J'ai regardé des tutos je n'est rien trouvé de plus, les bibliothèques sont bien liées en debug...