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

Langage C++ Discussion :

[Langage] Lignes sautées lors de l'exécution


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité4
    Invité(e)
    Par défaut [Langage] Lignes sautées lors de l'exécution
    Bonjour,

    je programme avec CodeBlocks et compile avec gcc sous Windows XP.
    Une partie de mon code semble ne pas s'exécuter.
    La ligne avec la fonction MessageDiag() ne s'exécute pas.
    L'utilisation de BreakPoints avec le débugger le confirme.

    Savez-vous ce qui peut faire ce genre de problèmes ?

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ....
     
                RegBridge->NumberOfObjects++;
     
                // Repris du chargement (init.cpp)
                MessageDiag("world/objects/" + RegBridge->Obj[RegBridge->NumberOfObjects - 1][0] + ".lp", "h");
                BuffBridge(1, RegBridge->NumberOfObjects - 1, LoadLpRes("world/objects/" + RegBridge->Obj[RegBridge->NumberOfObjects - 1][0] + ".lp"));
                if (is_readable("world/objects/" + RegBridge->Obj[RegBridge->NumberOfObjects-1][0] + "_C" + ".lp"))
                {
                    BuffBridge(3, RegBridge->NumberOfObjects - 1, LoadLpRes("world/objects/" + RegBridge->Obj[RegBridge->NumberOfObjects - 1][0] + "_C" + ".lp"));
                }
     
    ...

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    1/ Première hypothèse: il manque du code au dessus pour l'expliquer.
    2/ Seconde hypothèse: MessageDiag est définit uniquement en debug/sur directive de compilation?

  3. #3
    Invité4
    Invité(e)
    Par défaut
    MessageDiag fonctionne car s'il est appelé en début de fonction, il affiche bien la boite de dialogue.

    La fonction complète ::
    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
    void QUESTD_ObjectTouchImplement(int ObjId)
    {
        Registry * RegBridge; RegBridge = new Registry;
     
        RegBridge->QLayer.Send(RegBridge->Obj, RegBridge->quests_reg);
        RegBridge->QLayer.CallScriptQuest(ObjId);
        for (unsigned int i = 0; i < RegBridge->QLayer.mod.size(); i++)
        {
            if (RegBridge->QLayer.mod.at(i).type == QUEST_MOD_QREG)
            {
                RegBridge->quests_reg[RegBridge->QLayer.mod.at(i).imod] = RegBridge->QLayer.mod.at(i).imod2;
            }
            else if (RegBridge->QLayer.mod.at(i).type == QUEST_MOD_OBJ)
            {
                // On ajoute l'objet dynamiquement depuis RegBridge->QLayer.mod.mod qui contient la chaine de l'objet
                vector<string> ww = Explode(',', RegBridge->QLayer.mod.at(i).mod);
                for (int ww2 = 0; ww2 < (int)ww.size(); ww2++)
                    RegBridge->Obj[RegBridge->NumberOfObjects][ww2] = ww.at(ww2);
     
                RegBridge->NumberOfObjects++;
     
                // Repris du chargement (init.cpp)
                MessageDiag("world/objects/" + RegBridge->Obj[RegBridge->NumberOfObjects - 1][0] + ".lp", "h");
                BuffBridge(1, RegBridge->NumberOfObjects - 1, LoadLpRes("world/objects/" + RegBridge->Obj[RegBridge->NumberOfObjects - 1][0] + ".lp"));
                if (is_readable("world/objects/" + RegBridge->Obj[RegBridge->NumberOfObjects-1][0] + "_C" + ".lp"))
                {
                    BuffBridge(3, RegBridge->NumberOfObjects - 1, LoadLpRes("world/objects/" + RegBridge->Obj[RegBridge->NumberOfObjects - 1][0] + "_C" + ".lp"));
                }
            }
        }
        RegBridge->QLayer.mod.clear();
        delete(RegBridge);
    }
    Merci

  4. #4
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    est ce qu'il rentre dans la boucle, et si oui est ce qu'il passe par la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RegBridge->QLayer.mod.at(i).type == QUEST_MOD_OBJ

  5. #5
    Invité4
    Invité(e)
    Par défaut
    Oui ces deux conditions sont remplies.

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par Eldacar Voir le message
    Oui ces deux conditions sont remplies.
    Bon, ben va falloir des infos supplémentaires:
    1/Est-ce que c'est du multi-thread et cette partie ne serait pas dans le thread IHM?
    2/Est ce que tu peux rentrer dans MessageDiag pour voir pourquoi la boîte n'est pas affichée?
    3/Quelle librairie fourni MessageDiag?

Discussions similaires

  1. n'afficher une ligne que lors d'un saut de page
    Par schwarzy2 dans le forum Access
    Réponses: 2
    Dernier message: 21/03/2007, 23h50
  2. Réponses: 8
    Dernier message: 10/11/2005, 15h58
  3. Analyser les exceptions survenues lors de l'exécution
    Par cedricgirard dans le forum Langage
    Réponses: 10
    Dernier message: 13/10/2005, 15h22
  4. Problème lors de l'exécution de mes programmes
    Par darkmalak01 dans le forum Langage
    Réponses: 7
    Dernier message: 27/09/2005, 18h35
  5. Message d'erreur Windows lors de l'exécution de l'appli D6-
    Par kolac dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/12/2004, 17h55

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