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

SFML Discussion :

Exception levée par Visual studio avec la SFML 3


Sujet :

SFML

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2025
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2025
    Messages : 1
    Par défaut Exception levée par Visual studio avec la SFML 3
    Bonjour à tous,

    Je travaille sur un petit projet de jeu type Pong en C++ avec la bibliothèque SFML 3 (version debug).
    À chaque exécution du programme depuis Visual Studio, une exception non gérée est levée à cette ligne dans mon fichier main.cpp (ligne 48) :

    const FloatRect textRect = m_label.getGlobalBounds();

    Et le message d’erreur est :

    > Exception non gérée à 0x603B6207 (sfml-graphics-d-3.dll) dans Projet jeux pong avec la SFML.exe : 0xC0000005 : Violation d'accès lors de la lecture de l'emplacement 0xFAF0F505.



    La ligne incriminée se trouve dans une méthode setPosition d’une classe qui contient un sf::RectangleShape (m_rect) et un sf::Text (m_label).
    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
     
    void setPosition(Vector2f position)
    {
        try
        {
            m_rect.setPosition(position);
            const FloatRect textRect = m_label.getGlobalBounds();
            Vector2f scaleFactor(0.6f * m_rect.getSize().x / textRect.width, 0.6f * m_rect.getSize().y / textRect.height);
            if (scaleFactor.x < 1 || scaleFactor.y < 1)
                m_label.setScale(scaleFactor);
            m_label.setPosition({
                position.x + (position.x + m_rect.getSize().x - m_label.getGlobalBounds().width) / 2,
                position.y + (position.y + m_rect.getSize().y - m_label.getGlobalBounds().height) / 2
            });
        }
        catch(std::exception const& e)
        {
            std::cerr << "ERREUR : " << e.what() << std::endl;
        }
    }
    Ce que j’ai vérifié :

    -m_label a bien un texte assigné (non vide)

    -Une police de caractères (arial.ttf) est bien chargée avec m_label.setFont(...) (pas de message d’erreur à ce niveau)

    Le programme compile correctement, mais plante systématiquement à l’exécution sur cette ligne

    Même avec des vérifications if (textRect.width == 0) etc., l’erreur persiste


    Informations supplémentaires :

    Visual Studio 2022

    Debug mode

    SFML 3.0.0 (build debug et les DLL correspondantes)

    Windows 10


    Je suis un peu bloqué, je soupçonne une mauvaise initialisation du sf::Text ou de la police, mais je n'arrive pas à identifier la cause exacte.

    Merci d'avance pour toute aide ou piste*de*débogage*!


    main.cpp

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 113
    Billets dans le blog
    147
    Par défaut
    Bonjour,

    En lisant le code, je n'arrive pas à voir ce qui ne va pas. L'erreur 0xC0000005 est bien lié au fait que m_label n'est pas valide. Est-ce à cause de votre ButtonArray, je n'en suis pas sûr.
    Est-ce que l'erreur débute de la ligne 153, ou 154 (est-ce qu'elle est provoqué par le premier ou le deuxième setPosition) ?
    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
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    m_label étant un sf::Text, est-ce que sa Font est toujours valide quand tu espères l'afficher ?
    Ou ils ont changé ça et le text maintient maintenant la vie de sa font ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 113
    Billets dans le blog
    147
    Par défaut
    C'est aussi mon hypothèse, mais j'ai peu utilisé la SFML, donc je n'étais pas trop sûr de se dont je me rappelais .
    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. langpack.exe introuvable par Visual Studio !
    Par DMASilencer dans le forum Visual Studio
    Réponses: 2
    Dernier message: 12/07/2007, 10h25
  2. Réponses: 6
    Dernier message: 08/12/2006, 14h59
  3. fonction deprecated par Visual Studio C++
    Par guidevelop dans le forum Visual C++
    Réponses: 2
    Dernier message: 06/11/2006, 11h35
  4. Réponses: 1
    Dernier message: 17/07/2006, 17h08
  5. Expliciter une exception levée par un objet OLE
    Par Bleuarff dans le forum Windows
    Réponses: 3
    Dernier message: 12/05/2005, 16h10

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