Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1018 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Probleme : Heap corruption detected

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Probleme : Heap corruption detected

n°1499518
tabasc0
Posté le 05-01-2007 à 19:13:17  profilanswer
 

Bonjour,
 
Depuis hier j'ai un problème lorsque je lance mon programme en C++ (Qt,OpenGl).
J'arrive à lancer mon appli et elle marche plutôt bien mais lorsque je la referme, un message d'erreur apparait :  
 
Program: ....
 
Heap CORRUPTION DETECTED: after Normal block (#machin) at adressemachin CRT detected that the application wrote to memory after end of heap buffer.
 
Je précise que je travail sous visual 2005 et que le code que je compile est une base d'un tutoriel trolltech que je ne comprend pas en détail.
Bref j'ai quand même réussi à trouver l'erreur, elle vient d'une variable que je déclare dans un .h, un pov int de mer**...
Lorsque je le met en commentaire, ca tourne, si je le décommente ca ne marche plus.
Je n'utilise nul part cette variable et je ne comprend pas que ca puisse générer une erreur.
 
Voici le code :  
 

Code :
  1. #ifndef GLWIDGET_H
  2. #define GLWIDGET_H
  3. #include <QGLWidget>
  4. class GLWidget : public QGLWidget
  5. {
  6.      Q_OBJECT
  7. public:
  8.      GLWidget(QWidget *parent = 0);
  9.      ~GLWidget();
  10.      QSize minimumSizeHint() const;
  11.      QSize sizeHint() const;
  12. public slots:
  13.      void setXRotation(double angle);
  14.      void setYRotation(double angle);
  15.      void setZRotation(double angle);
  16. signals:
  17.      void xRotationChanged(double angle);
  18.      void yRotationChanged(double angle);
  19.      void zRotationChanged(double angle);
  20. protected:
  21.      void initializeGL();
  22.      void paintGL();
  23.      void resizeGL(int width, int height);
  24.      void mousePressEvent(QMouseEvent *event);
  25.      void mouseMoveEvent(QMouseEvent *event);
  26. private:
  27.      GLuint makeObject();
  28.      void quad(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2,
  29.                GLdouble x3, GLdouble y3, GLdouble x4, GLdouble y4);
  30.      void extrude(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
  31.      GLuint object;
  32.  int xRot;
  33.      int yRot;
  34.      int zRot;
  35.  //int lavariablequifaitchier;
  36.      QPoint lastPos;
  37.      QColor trolltechGreen;
  38.      QColor trolltechPurple;
  39. };
  40. #endif


 
Si quelqu'un a une idée je suis preneur.
 
Merci

mood
Publicité
Posté le 05-01-2007 à 19:13:17  profilanswer
 

n°1499553
IrmatDen
Posté le 05-01-2007 à 21:27:54  profilanswer
 

Salut,
Plutôt bizarre comme crash @_@
A priori, j'ai la même config que toi; j'essaie en rentrant chez moi, on sera vite fixé.

n°1499556
tabasc0
Posté le 05-01-2007 à 21:44:49  profilanswer
 

Ah super sympa merci ...

n°1499606
Taz
bisounours-codeur
Posté le 05-01-2007 à 23:36:43  profilanswer
 

en plus c'est génial, t'as pas posté de code ...


Message édité par Taz le 05-01-2007 à 23:36:54
n°1499610
tabasc0
Posté le 05-01-2007 à 23:51:27  profilanswer
 

http://charlyr.free.fr/hfr/

 

Le projet visual 2005.
J'ai posté le .h où la variable en question me pose problème.

 


Message édité par tabasc0 le 05-01-2007 à 23:53:19
n°1499614
IrmatDen
Posté le 06-01-2007 à 00:09:27  profilanswer
 

Bah écoute, ça marche très bien chez moi en ajoutant un int exactement où tu l'as fait, sans le mettre, bref, t'as quelque chose qui foire dans la description de ton projet.
Vu que tu utilises la version commerciale, je peux pas t'aider. Essaie tout de même en mettant tes sources dans un autre répertoire (uniquement les .cpp, .h et .ui), et dans la console de VC tu saisis qmake -project. Dans le .pro généré tu ajoutes une ligne QT += opengl juste avant la ligne # input (bien que je doute que ça change grand chose que tu le mettes un peu avant :)).
Ensuite, toujours dans la console, qmake && nmake. Ensuite tu lances ce qu'il te sort dans le sous-rep debug, et tu nous dis s'il y a toujours le crash.
 
Par contre, quand tu postes du code, ne poste *que* le code et les fichiers descriptif du projet, pas les infos de debug ça réduit bien le poids.

n°1499621
tabasc0
Posté le 06-01-2007 à 00:19:09  profilanswer
 

Ok je te remercie, je vais voir ca.

n°1499627
tabasc0
Posté le 06-01-2007 à 00:37:53  profilanswer
 

Bon, il n'y a rien dans le rep debug mais dans le rep release, j'ai lancé l'executable et il me dit qu'il ne trouve pas QtOpenGL4.dll.  
Voilà autre chose...

n°1499629
IrmatDen
Posté le 06-01-2007 à 00:39:47  profilanswer
 

Installation foireuse... Tu as bien mis <Qt>\bin dans ton path?

n°1499631
tabasc0
Posté le 06-01-2007 à 00:43:44  profilanswer
 

Hum... Non j'ai rien fait de plus que de cliquer sur "suivant".
Je regarde ça.

mood
Publicité
Posté le 06-01-2007 à 00:43:44  profilanswer
 

n°1499638
tabasc0
Posté le 06-01-2007 à 01:00:52  profilanswer
 

Bon ca ne change rien, je l'ai rajouté dans le Path.
Et j'ai rebooté.
 
C'est normal que dans le lib les fichiers sont des dll.manifest ??
Bon aucune appli Qt ne fonctionne alors qu'avant avec la version d'évaluation ca fonctionnait...
Je vais peut être le réinstaller voir...


Message édité par tabasc0 le 06-01-2007 à 01:09:07
n°1499693
tabasc0
Posté le 06-01-2007 à 11:41:37  profilanswer
 

Bon j'ai reinstallé, et j'ai fait ce que tu m'as dis.
Ca marche comme sur des roulettes...
J'ai du mal à comprendre d'où venait ce problème...
En tout cas merci beaucoup IrmatDen d'avoir pris la peine de compiler mon truc.
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Probleme : Heap corruption detected

 

Sujets relatifs
probleme d'execution sous IEprobleme javascript
Probleme d'echelle, axes JpGraph (LinePlot)Problème de requête SQL - PHP - mysql
Probleme envoie de mails Java : courrier indésirableProblème de div superposée
suivi de "Problème avec math.h"Problème centrage et élargissement de page web
probleme de débutant - tracer un graph avec une macro[C] Des accolades "just pour le fun" ?
Plus de sujets relatifs à : [C++] Probleme : Heap corruption detected


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR