Partage
  • Partager sur Facebook
  • Partager sur Twitter

Processus terminé en -1073741819

Sujet résolu
    15 juin 2006 à 18:14:14

    Checking for existence: C:\Documents and Settings\Famille\Mes documents\Quentin\Informatique\C++\3D\sdlapp.exe
    Executing: "C:\Documents and Settings\Famille\Mes documents\Quentin\Informatique\C++\3D\sdlapp.exe" (in C:\Documents and Settings\Famille\Mes documents\Quentin\Informatique\C++\3D\.)
    Process terminated with status -1073741819 (0 minutes, 4 seconds)

    Sources disponibles sur: http://asantos.free.fr/zero/sources/
    • Partager sur Facebook
    • Partager sur Twitter
      15 juin 2006 à 18:48:24

      Voila comment on débug :


      Project > Properties > Targets > Type > Console application (le temps du Debug)

      Project > Build options > Compiler > Compiler Flags > Cocher Produce debugging symbols > Cocher Profile code when executed

      Build > Rebuild

      Debug > Debug

      #0 0x00402935 createTextureFromText (sdlglutils.cpp:346)
      #1 0x00402c11 texte2d::texte2d (texte.cpp:11)
      #2 0x00403079 message2d::message2d (texte.cpp:66)
      #3 0x00401842 __static_initialization_and_destruction_0 (main.cpp:12)
      #4 0x0040194a global constructors keyed to SDL_main (main.cpp:128)
      #5 0x00404dc7 __main (??:??)
      #6 0x00404ba9 main (??:??)


      Allons donc à la ligne en question :
      *width = texte_surface->w;


      Pourquoi merde elle ?
      #include <assert.h>

      assert(texte_surface); //avant la ligne qui bug.


      Build & Run >
      Assertion failed: texte_surface, file sdlglutils.cpp, line 342


      Pourquoi texte_surface vaut NULL ?

      On remonte et on voit :
      texte_surface = TTF_RenderText_Solid(font,text,textColor);

      Testons le premier argument avant l'appel :

      assert(font);


      Assertion failed: font, file sdlglutils.cpp, line 327


      Pourquoi font merde ?
      font = TTF_OpenFont( "arial.ttf", 30 );


      Hum.. tout va bien, il y a bien le arial.tff dans le rep de l'executable.
      Mais TTF_Init() a-t-il été fait ?

      Remontons la trace :
      #3 0x00401842 __static_initialization_and_destruction_0 (main.cpp:12)


      Et que voit on ?

      static message2d *mess = new message2d, *coord = new message2d;


      Ô rage ô désespoir. Des objets message2d construits en dehors de tout bloc et donc qui utilisent SDL_TTF avant son initilisation.... à changer donc (mettre les new dans le main après l'appel à SDL_TTF).

      Je te laisse le faire, tu verras qu'il te reste d'autres erreurs ailleurs, sauf que maintenant tu sais débugger toi même.


      Edit : bon je t'aide pour trouver tes autres erreurs

      Project > Build Options > Cocher Enable all compiler warnings

      Build > Rebuild

      texte.cpp: In constructor `message2d::message2d()':
      texte.cpp:66: warning: unused variable 'texte'
      texte.cpp: In constructor `message2d::message2d(const char*)':
      texte.cpp:71: warning: unused variable 'message'


      Hum... d'où sortent ce "texte2d *texte" et ce "texte2d *message" ... voulais tu dire "message" tout court ? (le membre de la classe)
      • Partager sur Facebook
      • Partager sur Twitter
        16 juin 2006 à 18:28:09

        Merci. Grâce à cette méthode, j'ai put revenir à une sortie de type 3 (c'est déjà mieux qu'un -1073741819 ^^ ) puis réussir à faire fonctionner le programme malgrès un bug entre les lignes 110 et 114 (que j'ai mis en commentaire en attendant).

        Merci de ton aide.
        • Partager sur Facebook
        • Partager sur Twitter

        Processus terminé en -1073741819

        × 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