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

Discussion :

Programme qui se ferme de facon inattendue

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 154
    Par défaut Programme qui se ferme de facon inattendue
    Bonsoir,

    J'ai une méthode déclarer comme ceci : void Dialog::display(int type,QString title,QString Message);

    Cette méthode est appellé quand un QString a été récupéré via un QTcpSocket.

    Si je fais un qDebug() << LeQString je n'ai aucun probléme or si j'execute la méthode tout fonctionne normalement sauf qu'une fois que j'ai cliqué sur la MessageBox qui m'a été transmise via ce QString mon programme se coupe sans raison et le debuger ne me signale rien d'anormal :s

    methode display :
    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
     
    void Dialog::display(int type,QString title,QString Message)
    {
    switch (type)
    {
            case 1 :void Dialog::Datain()
    {
        QDataStream in(TcpSocket);
        if (tailleMessage == 0)
    {
            if (TcpSocket->bytesAvailable() < (int)sizeof(quint16))
            return;
        in >> tailleMessage;
    }
     
    if (TcpSocket->bytesAvailable() < tailleMessage)
        return;
    tailleMessage = 0;
    QString Message;
    in >> Message;
    int P1 = Message.indexOf("|",0);
    int P2 = Message.indexOf("|",P1+1);
    QString title = Message.mid(0,P1);
    QString text  = Message.mid(P1+1,P2-P1-1);
    int type = Message.mid(P2+1,-1).toInt();
    display (type,title,text);
            QMessageBox::information(this,title,Message);
            break;
     
            case 2 :
            QMessageBox::warning(this,title,Message);
            break;
     
            case 3 :
            QMessageBox::critical(this,title,Message);
            break;
     
            case 4 :
            QMessageBox::question(this,title,Message);
            break;
     
            default :
            QMessageBox::information(this,title,Message);
            break;
     
        }
    }
    et le slot de réception qui appelle cette méthode

    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
    void Dialog::Datain()
    {
        QDataStream in(TcpSocket);
        if (tailleMessage == 0)
    {
            if (TcpSocket->bytesAvailable() < (int)sizeof(quint16))
            return;
        in >> tailleMessage;
    }
     
    if (TcpSocket->bytesAvailable() < tailleMessage)
        return;
    tailleMessage = 0;
    QString Message;
    in >> Message;
    int P1 = Message.indexOf("|",0);
    int P2 = Message.indexOf("|",P1+1);
    QString title = Message.mid(0,P1);
    QString text  = Message.mid(P1+1,P2-P1-1);
    int type = Message.mid(P2+1,-1).toInt();
    display (type,title,text);
    }
    Auriez vous une idée sur la question ?

    Merci bien.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    tu pourrai vérifiers les source que tu as mis. Tu as du faire une fausse manipe.

    Sinon, a première vue, tu as peut être display qui appel display qui appel display qui appel.... => CRASH

Discussions similaires

  1. Programme qui ne se ferme pas totalement
    Par Catskan dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/08/2012, 00h43
  2. Réponses: 3
    Dernier message: 28/07/2012, 15h26
  3. Réponses: 1
    Dernier message: 04/11/2008, 10h16
  4. [WD11]Programme qui se ferme
    Par mimich9124 dans le forum WinDev
    Réponses: 12
    Dernier message: 18/11/2007, 16h54
  5. programme qui s ouvre, execute et se ferme ..
    Par hijodelanoche dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2005, 09h37

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