Forum de la communauté SFML

Aide => Général => Discussion démarrée par: yhu420 le Février 21, 2015, 05:41:31 pm

Titre: [Résolu]Problème .. inconnu ?
Posté par: yhu420 le Février 21, 2015, 05:41:31 pm
Bonjour tout le monde,
Je n'arrive pas à comprendre la source de mon problème, tout simplement, ce n'est pas même forcément lié à SFML, je n'ai aucune idée d'où l'erreur vient...
Vous remarquerez que j'ai pété un plomb avec le debugger, et que j'ai donc débuggé comme un bleu à coup de cerr  ;D. Assez parlé, voila le code
//Dans Menu.hpp

virtual void draw(sf::RenderTarget &target, sf::RenderStates states) const
        {
                if(isAtMain)
                {
                        //...
                        std::cerr << "0 - mainvessel exists : " << (bool)mainVessel;
                        target.draw(*mainVessel);
                        std::cerr << "1";
                        target.draw(*Play);
                        std::cerr << "2";
                        //...

protected:
FullSprite *mainVessel;
};
 
Dans fullsprite.hpp
class FullSprite : public sf::Drawable //Used to be a struct, that's why it is not, well, traditional
{
public:
        virtual void draw(sf::RenderTarget &target, sf::RenderStates states) const
        {
                target.draw(*m_sprite); //m_sprite est un sf::sprite
                std::cerr << "sprite exists: " << (bool)m_sprite;
        }
 

Pour expliquer tout ca: la console affiche "mainvessel exist: 1", ce qui signifie que l'instruction executée est bien celle désirée. L'instruction suivante ( target.draw(*mainVessel);) va être exécutée. Pour voir plus en détail les instructions suivantes, il faut donc se rendre dans la méthode draw de FullSprite. Les deux lignes qui constituent cette méthode sont vien exécutées, la console indique que le sprite existe.
A présent, la prochaine instruction qui doit être exécutée est
std::cerr << "1";
si je ne me trompe pas, pas d'erreur jusqu'ici, non?
Eh bien non, mon programme crashe entre les deux dernières instructions, visual studio m'indiquant en chemin :
Aucun symbole n'a été chargé: /*bla bla*/
Emplacement d'origine: C:\Users\monNom\Projets\SFML\DatBlaster\Release\sfml-graphics-2.dll

Je trouve cela étrange puisque j'ai déjà réussi à faire tourner mon programme sans soucis, les modifications dernières n'ayant aucun rapport avec cette partie du code.
Je suis sous Windows 7 x64 avec SFML 2.2.
Dites moi si vous avez une idée, ou simplement besoin de plus d'infos
Merci d'avance
Titre: Re : Problème .. inconnu ?
Posté par: Laurent le Février 21, 2015, 05:52:53 pm
1. Passe en configuration Debug pour debugger...
2. Utilise ton debugger
3. Si tu ne trouves toujours pas, donne nous les infos qu'il te donne
Titre: Re : Problème .. inconnu ?
Posté par: yhu420 le Février 22, 2015, 06:56:39 pm
Merci beaucoup de ta réponse plutot vague, en rebuildant en mode debug mon programme, j'ai trouvé la source de mon problème! C'est tout simplement que j'avais commencé mon projet avec SFML 2.1, j'ai mis a jours SFML vers 2.2, mais j'ai oublié de remplacer les DLL!
Merci à toi pour ton aide, encore une fois  8)