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

C++ Discussion :

Heu... victime d'un bug ?


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 139
    Points : 55
    Points
    55
    Par défaut Heu... victime d'un bug ?
    Bonsoir.

    Je programme sous Code::Blocks, et j'ai un problème que je ne comprends pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            pos = buf.find("(");
    C::B me dit :

    invalid conversion from 'int' to 'Data_Texture_Sol*'

    Or, pos est un int, et buf un string...

    Le pointeur Data_Texture_Sol se nomme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Data_Texture_Sol *pointeur_texture_sol;
    Et pour la ligne précédente :

    C::B ne me retourne aucune erreur !!!

    Un petite explication serait la bienvenue...

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    il y a visiblement deux codes totalement disjoint...

    est-il possible d'avoir exactement la ligne qui provoque l'erreur ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    Voici le code entier :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    void C_Case::SetData(string buf, int pos_x, int pos_y)
    {
            int vram=1;
            string resultat;
            string Nom_trouve;
            string buf_data;
            string chemin;
            int nombre, pos, longueur, largeur, x, y;
     
            pos = buf.find(",");
     
            resultat = buf.substr(0, 2);
            istringstream nbr_x(resultat);
            nbr_x >> x;//CHARGEMENT DU NR X DE LA CASE
     
            resultat = buf.substr(pos+1,2);
            istringstream nbr_y(resultat);
            nbr_y >> y;//CHARGEMENT DU NR Y DE LA CASE
     
            pos = buf.find(":");
            resultat = buf.substr(pos+1, 2);
            istringstream nbr_texture_sol(resultat);
            nbr_texture_sol >> texture_sol;//CHARGEMENT DE LA TEXTURE SOL DE LA CASE
            pointeur_texture_sol =
     
                                      //////////////////////////////////////////////
            pos = buf.find("(");//LA LIGNE QUI PLAAAAAAAAAAAAAANTE
                                     ///////////////////////////////////////////////
            resultat = buf.substr(pos+1, 1);
            istringstream nr_texture_sol(resultat);
            nr_texture_sol >> Nr_texture;//CHARGEMENT DU NR TEXTURE
     
            pos = buf.find(",", pos+1);
            resultat = buf.substr(pos+1, 2);
            istringstream nbr_texture_bord(resultat);
            nbr_texture_bord >> texture_bord;//CHARGEMENT DU NR TEXTURE BORD DE LA CASE
     
            pos = buf.find(",", pos+1);
     
            //CHARGEMENT DU DECORS
            resultat = buf.substr(pos+1, 1);
            if (resultat == "*")//SI LA CASE NE CONTIENT PAS DE DECORS
            {
                pointeur_decors = NULL;
                decors = -1;
                Decors_x = -1;
                Decors_y = -1;
            }
            else//SI LA CASE CONTIENT UN DECORS
            {
                resultat = buf.substr(pos+1, 2);
                istringstream nbr_decors(resultat);
                nbr_decors >> decors;//CHARGEMENT DU NR DECORS DE LA CASE
                for (int pos_x = x; pos_x <= x+pointeur_decors->Taille_x && pos_x < longueur; pos_x++)
                {
                    for (int pos_y = y; pos_y <= y+pointeur_decors->Taille_y && pos_y < largeur; pos_y++)
                    {
                        Decors_x = x;
                        Decors_y = y;
                    }
                }
                pointeur_decors = &decor[decors];
            }
     
            pos = buf.find(",", pos+1);
     
            resultat = buf.substr(pos+1, 1);
            istringstream nr_elevation(resultat);
            nr_elevation >> elevation;//CHARGEMENT DE L'ELEVATION DE LA CASE
     
     
            affich_x = (largeur+(x-y-1))*20+Pos_x;
            affich_y = (y+x)*12+Pos_y-(7*elevation);
     
            pos = buf.find(",", pos+1);
            resultat = buf.substr(pos+1, 1);
            if (resultat == "*")//SI LA CASE NE CONTIENT PAS DE COFFRE
            {
                Coffre = -1;
            }
            else//SI LA CASE CONTIENT UN COFFRE
            {
                resultat = buf.substr(pos+1, 2);
                istringstream nbr_coffre(resultat);
                nbr_coffre >> Coffre;//CHARGEMENT DU COFFRE
                pos = buf.find("(", pos+1);
                Item = buf.substr(pos+1, buf.find(")", pos+1)-pos-1);
            }
     
            pos = buf.find(",", pos+1);
            resultat = buf.substr(pos+1, 1);
            if (resultat == "*")//SI LA CASE NE CONTIENT PAS DE CHARSET
            {
                Charset = -1;
            }
            else//SI LA CASE CONTIENT UN CHARSET
            {
                resultat = buf.substr(pos+1, 2);
                istringstream nbr_charset(resultat);
                nbr_charset >> Charset;//CHARGEMENT DU CHARSET
                pos = buf.find("(", pos+1);
                resultat = buf.substr(pos+1, 1);
                istringstream nbr_angle(resultat);
                nbr_angle >> Angle_Charset;//CHARGEMENT DU CHARSET
                pos = buf.find(",", pos+1);
                PNJ = buf.substr(pos+1, buf.find(")", pos+1)-pos-1);
            }
     
            pos = buf.find(",", pos+1);
            resultat = buf.substr(pos+1, 1);
            if (resultat == "*")//SI LA CASE EST UN PORTAIL
            {
                ID = -1;
            }
            else//SI LA CASE EST UN PORTAIL
            {
                resultat = buf.substr(pos+1, 2);
                istringstream nbr_id(resultat);
                nbr_id >> ID;//CHARGEMENT DU PORTAIL
                pos = buf.find("(", pos+1);
                Map = buf.substr(pos+1, buf.find(")", pos+1)-pos-1);
            }
    }

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    #include "SDL_Event.hpp"
     
    using namespace std;
     
    /*
    CLASSE CASE
     
    Liée à la classe C_Terrain, elle contient les informations sur la case.
    */
     
    struct Data_Decors
    {
        int Base_x;//L'emplacement de sa base en x sur l'image.
        int Base_y;//l'emplacement de sa base en y sur l'image.
        int Taille_x;//Le nombre de case en x que le décors prend.
        int Taille_y;//Le nombre de case en y que le décors prend.
    };
     
    struct Data_Texture_Sol
    {
        int Width;//La largeur d'une texture
        int Height;//La hauteur d'une texture
        int nombre_textures;//Le nombre de textures qu'il y a par chipset
    };
     
    class C_Case
    {
    private:
        int affich_x;//La position x de la case
        int affich_y;//La position y de la case
        short elevation;//La hauteur de la case, positif
        int texture_sol;//La texture du sol de la case
        Data_Texture_Sol *pointeur_texture_sol;//L'adresse de la texture
        int texture_bord;//La texture du bord de la case
        int decors;//Le décors placé sur la case
        int Nr_texture;//Le Nr de la texture sur l'image
        Data_Decors *pointeur_decors;//L'adresse du décors
        int Decors_x;//la position X et Y du décors
        int Decors_y;//
        int Coffre;
        int Charset;
        int Angle_Charset;
        int ID;
        string Map;
     
    public:
     
        SDL_Events *Events;
        // Constructeur.
        C_Case(SDL_Events &Event);
     
        // Destructeur.
        ~C_Case();
     
        int Get_TextureSol();
        void SetData(string buf, int pos_x, int pos_y);
        //Clic sur une case
        int Clic();
    };
     
    #endif
    Voila, j'ai mit la classe et la fonction ou se trouve l'erreur...

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    sur la ligne avant celle qui plante : y'a rien qui te gène ? moi carrément, si ^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 139
    Points : 55
    Points
    55
    Par défaut
    XD

    Effectivement, je me demande comment j'ai pas pu voir une erreur pareil

    Je devais être trop fixer sur la ligne que C::B me montrait...

    Bon ba merci, ça devrait aller ^^

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    L'erreur est toujours à la ligne indiquée ou avant.

Discussions similaires

  1. Skype victime d’un bug critique
    Par Amine Horseman dans le forum Sécurité
    Réponses: 6
    Dernier message: 05/06/2015, 10h12
  2. iOS et OS X victimes d’un « killer bug »
    Par Cedric Chevalier dans le forum Sécurité
    Réponses: 22
    Dernier message: 13/09/2013, 09h29

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