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

Qt Discussion :

Invalid parameter passed to C runtime function [Graphics View]


Sujet :

Qt

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut Invalid parameter passed to C runtime function
    Bonjour tout le monde !

    L’exécution de ce code crashe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
       scene->clear();
        double factorX = 5.0;
        double factorY = 5.0;
     
       QList<GroupeArete> *myGrpArete = Utils::GetListArete();
     
       if(myGrpArete == NULL || myGrpArete->count() < 1 || myGrpArete->count() < (groupIndex+1))
           return;
     
       GroupeArete firstGroup = myGrpArete->at(groupIndex) ;
       QString strBeginPolygo = firstGroup.listAretes->at(0).origine->getNumero();
       QList<CaltopoPoint> ListPoints ;
       QList<QString> AlreadyComp;
    Il y a forcément une erreur que je ne vois pas mais où ?

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 863
    Points : 219 060
    Points
    219 060
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myGrpArete->count() < (groupIndex+1)
    Je pense que si je prend un tableau de N élément, le Nième élément, n'est pas accessible non plus, car on compte à partir de zéro. Donc, le test, d'après moi, doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myGrpArete->count() < groupIndex
    Note : il est conseillé d'utiliser un débogueur en pas à pas pour trouver les erreurs et les comprendre
    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
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    Merci , mais c’est pas ça.

    J'ai oublié aussi de dire que le code s’exécutait correctement sur Qt4.8 , mais là il s'agit de la version avec Qt5.2.

    Quant au débogueur j’avoue avoir oublié comment m'en servir, j 'ai mis un point d'arrêt à l'entrée de la méthode qui fait crasher l'application , mais il y a toujours le crash sans informations supplémentaires en mode debug.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    Bon finalement j’insiste et avec le débogueur et j’obtiens la ligne exacte qui cause le crashe.

    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
    GraphWidget::GraphWidget(QWidget *parent)
        : QGraphicsView(parent), timerId(0)
    {
        if (ListNode!= NULL)
            ListNode->clear();
         scene = new QGraphicsScene(this);
     
     
     
        scene->setItemIndexMethod(QGraphicsScene::BspTreeIndex);
       //$ scene->setSceneRect(-200, -200, 400, 400);
        //scene->setSceneRect(-150, -150, 800, 600); 
    etc.....
     
        setScene(scene);
    C'est la ligne 2 avec en plus le message : ASSERT failure in QList<T>::at: "index out of range" file et il me renvoie vers la ligne 472 de l'include de qlist.h
    Pourtant il n'y a pas de Qlist dans cette portion de code .
    j'y comprends de moins de moins ....

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 863
    Points : 219 060
    Points
    219 060
    Billets dans le blog
    120
    Par défaut
    Oui, en effet, j'ai mal interprété le test.

    Bon, au moins, vous savez que c'est un problème d'index sur une liste. Il se peut que vous ayez plusieurs thread d'actif à la fois, sinon, je ne vois pas pourquoi le code de rendu serait en cause. Essayez de vérifier l'exécution des autres threads, dans le débogueur.
    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.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    Plusieurs threads ? Effectivement il y a l’application MainWindow et puis à partir des ses menus persos on peut lancer un QGraphicsview attaché à Qwidget cela fait donc 2 threads . Là on est dans le code de QGraphicswidget et le problème vient forcement de là , pas de la fenêtre principale qui est le seul autre thread , enfin je pense.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 59
    Points : 39
    Points
    39
    Par défaut
    Problème résolu finalement. Le code n'a pas de problème mais ma liste etait remplie par une requète SQL qui ne renvoyait rien d'où le plantage. Si j'avais été plus à l'aise avec le debug j'aurais perdu moins de temps.

    Bon maintenant je sais m'en servir !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Invalid parameter passed to C runtime function
    Par TiBrice974 dans le forum Qt
    Réponses: 7
    Dernier message: 18/02/2013, 17h34
  2. Réponses: 2
    Dernier message: 31/03/2009, 09h58
  3. invalid parameter in transaction
    Par zoheir13 dans le forum Connexion aux bases de données
    Réponses: 5
    Dernier message: 25/01/2009, 18h25
  4. [D7][Crystal Report 8.5] Error 553 Invalid Parameter Name
    Par Parrain dans le forum Bases de données
    Réponses: 7
    Dernier message: 22/08/2007, 18h09
  5. [Crystal Report 8.5][D7] Error 553 Invalid Parameter Name
    Par Parrain dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 22/08/2007, 12h56

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