Partage
  • Partager sur Facebook
  • Partager sur Twitter

message DE LA console

et non du programme

Sujet résolu
Anonyme
    18 décembre 2007 à 17:55:32

    This application has requested the Runtime to terminate it in an unusual way.
    Please contact the application's support team for information.


    Voila le jolie message qui s'affiche à moi une fois avoir lancé mon programme, à quoi correspond t il?
    Je n'ai jamais vu de truc semblable, ce n'est pas le genre de plantage que j'ai l'habitude de voir!
    • Partager sur Facebook
    • Partager sur Twitter
      18 décembre 2007 à 18:02:03

      Salut

      va faire un tour de ce côté :
      http://support.microsoft.com/kb/884538

      Ils donnent la cause et la soluce ^^
      • Partager sur Facebook
      • Partager sur Twitter
        18 décembre 2007 à 18:03:48

        Citation : Binabik

        Salut

        va faire un tour de ce côté :
        http://support.microsoft.com/kb/884538

        Ils donnent la cause et la soluce ^^



        trouvé en 3 secondes sur google hein?

        J'en connais qui devrait en faire autant...
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          18 décembre 2007 à 18:10:11

          ok, mais si j'utilise Code::Blcosk avec MinGW32???

          This problem may occur when you use the /GR and the /MD compiler switches, and the version of the Msvcrt.dll file and of the Msvcirt.dll file is 7.0.x.

          j'utilise pas les commandes la vu que je suis pas sur VC, donc leur cause est incorrect xD^!

          C'est lorsque j'utilise un fstream, ça eput veir de la?


          Edit : j'ai débugger un peu, et le message s'affiche lorsque je passe à l'instruction suivante :
          string last_logfile = line.substr(5, 4);
          en précisant la manière dont est obtenu line :
          string line = "";
          while(getline(logs, line)) {}

          Il s'agit en fait de la dernière ligne du fichier logs.
          Est ce que c'est donc à cause de getline qui me renvoie une valeur nul, et qui fait donc que je ne peux pas accéder à line.substr(5, 4)??
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            18 décembre 2007 à 18:26:12

            Je crois que ce message apparaît quand tu fais un dépassement de mémoire (que tu veux accéder à qqch qui n'est pas à toi).

            Que contient line avant le substr?
            • Partager sur Facebook
            • Partager sur Twitter
              18 décembre 2007 à 18:44:02

              en passant, juste pour info :

              1. while(getline(logs, line)) {}


              line est REMPLACÉ à chaque fois par la ligne suivante; elle ne s'additionne pas. donc, quand getline deviens faux, line = rien de valide. d'où le dépassement de mémoire.
              • Partager sur Facebook
              • Partager sur Twitter
              Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
              Anonyme
                18 décembre 2007 à 19:01:58

                ok, c'est bien ce qui me semblait, merci shadosan!
                mais du coups je peux faire comment pour récupérer la dernière ligne de mon fichier?
                je l'écrit à l'envers?

                j'ai tenté un autre truc, qui n'a pas marché non plus :
                1. int id = 0;
                2. while(getline(logs, line)) { id ++; }
                3. logs.seekp(0, ios::beg);
                4. int id2 = 0;
                5. while(getline(logs, line) && id2 < id ) { id2 ++; }

                C'est un peu lourd en plus comme méthode
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  18 décembre 2007 à 19:10:43

                  Euh, j'avais eu ça une fois. Si je me souviens bien c'est que j'avais essayé de lire avec substr, dans la chaine de caractère string, un caractère en dehors de la chaîne.

                  Essaie de faire un flux de sortie std::cout sur ton objet string et regarde si il y a bien quelque chose du caractère n°5 au caractère n°9.

                  J'espère que le problème se situe là :) .

                  Bonne chance :p !
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    18 décembre 2007 à 19:13:31

                    oui, la chaine est bien vide lol!
                    même avec ma deuxième méthode!

                    Edit : j'ai fait un test en prenant la première ligne à la place, mais c'est le même problème.
                    le code en question :
                    1. fstream logs("logs.log", ios::in | ios::out | ios::ate);
                    2.     if(! logs) {
                    3.         cerr << "Une erreur est survenue lors de l'ouverture du fichier de log" << endl;
                    4.         system("pause>nul");
                    5.         exit(EXIT_FAILURE);
                    6.     }
                    7.     string line = "";
                    8.     getline(logs, line);
                    9.     //splitting the line
                    10.     string last_logfile = line.substr(5, 4);
                    11.     std::istringstream stri(last_logfile);
                    12.     int nb_lastfile;
                    13.     stri >> nb_lastfile;
                    14.     nb_lastfile++;
                    15.     logs.close();


                    et le fichier contient juste une ligne (pour le moment) :
                    file=0000.log port=127 socket=136 ip=127.0.0.1
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 décembre 2007 à 19:38:02

                      comment obtenir la dernière ligne :

                      1. string str = "";
                      2. string buffer = "";
                      3. while (getline(logs, buffer))
                      4.     str = buffer;


                      "str" vaut maintenant la dernière ligne valide du fichier.

                      c'est peut-être pas la méthode la plus performante, mais elle est simple et elle marche ! ^^
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
                      Anonyme
                        18 décembre 2007 à 19:54:45

                        lol, pas mal du tous!
                        j'y avait pas penser, merci beaucoup!
                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 décembre 2007 à 20:11:20

                          lol, de rien ! ^^
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!

                          message DE LA console

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown