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

  FORUM HardWare.fr
  Programmation
  C++

  Plantage inexpliqué dès que je touche à un .h

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Plantage inexpliqué dès que je touche à un .h

n°786618
Alkor2001
Posté le 05-07-2004 à 09:16:33  profilanswer
 

Bonjour,
 
je bosse depuis 3 mois sur un gros projet en MFC (commencé par une autre personne l'an dernier), qui comprend un certain nombre de classes et de boîtes de dialogue, et depuis le début je fais face à un problème qui me gêne et dont je n'arrive pas à trouver la cause:
 
Pour certaines des classes, dès que j'ajoute une ligne dans le ".h" (que ce soit une variable ou une fonction), pas de problème de compilation, pas de problème à l'utilisation, MAIS j'ai un message d'erreur lors de l'extinction ("Ce programme a effectué une opération non conforme ..." ). Si je modifie la classe par le biais du classwizard, c'est pareil, donc je me retrouve un peu dans la m**** pour ajouter le moindre "event" à une ComboBox.
 
Alors voilà, d'où peut provenir le problème à votre avis? Je suppose que ça vient d'une histoire de gestion de mémoire, mais je ne comprends pas en quoi le fait de rajouter une variable du style "int toto;" dans un .h fait que le prog plante à l'extinction!?  :sweat:


---------------
J'aime pas Apple...
mood
Publicité
Posté le 05-07-2004 à 09:16:33  profilanswer
 

n°786620
Alkor2001
Posté le 05-07-2004 à 09:18:43  profilanswer
 

Voilà un des .h qui pose problème, au cas où ça peut être utile...
 

Code :
  1. #if !defined(AFX_INFOSMAT_H__B59C8E53_A4FD_4BA1_9F5B_AE88CBDA6418__INCLUDED_)
  2. #define AFX_INFOSMAT_H__B59C8E53_A4FD_4BA1_9F5B_AE88CBDA6418__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // InfosMat.h : header file
  7. //
  8. /////////////////////////////////////////////////////////////////////////////
  9. // CInfosMat dialog
  10. class CInfosMat : public CDialog
  11. {
  12. // Construction
  13. public:
  14. BOOL charger_quitter;
  15. BOOL enregistrer_fichier();
  16. BOOL charger_fichier();
  17. CInfosMat(CWnd* pParent = NULL);   // standard constructor
  18. // Dialog Data
  19. //{{AFX_DATA(CInfosMat)
  20. enum { IDD = IDD_INFOS_MAT };
  21. CComboBox m_presence_pointe;
  22. CString m_type;
  23. CString m_groupement;
  24. CString m_lieu;
  25. CString m_ville;
  26. CString m_type_montage;
  27. CString m_situation;
  28. CString m_responsable;
  29. CString m_position_porte;
  30. CString m_numero_mat;
  31. CString m_modele_mat;
  32. CString m_mf_maxi;
  33. CString m_element_additionnel;
  34. CString m_constructeur_mat;
  35. CString m_constructeur_lanterne;
  36. CString m_client;
  37. CString m_armoire;
  38. CString m_mat_precedent;
  39. CString m_modele_lanterne;
  40. //}}AFX_DATA
  41. // Overrides
  42. // ClassWizard generated virtual function overrides
  43. //{{AFX_VIRTUAL(CInfosMat)
  44. protected:
  45. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  46. //}}AFX_VIRTUAL
  47. // Implementation
  48. protected:
  49. // Generated message map functions
  50. //{{AFX_MSG(CInfosMat)
  51. virtual BOOL OnInitDialog();
  52. virtual void OnOK();
  53. virtual void OnCancel();
  54. //}}AFX_MSG
  55. DECLARE_MESSAGE_MAP()
  56. };
  57. //{{AFX_INSERT_LOCATION}}
  58. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  59. #endif // !defined(AFX_INFOSMAT_H__B59C8E53_A4FD_4BA1_9F5B_AE88CBDA6418__INCLUDED_)


Message édité par Alkor2001 le 05-07-2004 à 09:19:48

---------------
J'aime pas Apple...
n°786645
LeGreg
Posté le 05-07-2004 à 09:52:53  profilanswer
 

et avec le debugueur ça donne quoi ?

n°786647
m0rbac
Posté le 05-07-2004 à 09:53:49  profilanswer
 

Commence par nettoyer les fichiers objets en faisant un Clean ou un RebuildAll, des fois ça aide.
Ensuite, je doute que le problème vienne uniquement du ".h". Lorsque tu ajoutes une déclaration dans le header, en principe elle est accompagnée d'une implémentation dans le ".cpp". A mon avis c'est de ce côté ça cloche.
Il faut que tu t'amuses avec les breakpoints en mode Debug ou que tu lances ton appli avec F5 (menu Build->Start Debug->Go sous VC6) et que tu provoques le plantage pour voir où ça se passe au niveau du code.

n°786651
Alkor2001
Posté le 05-07-2004 à 09:59:28  profilanswer
 

Ok merci, je vais regarder du côté du debuggeur... (j'avais toujours réussi à y échapper jusque là, du coup je n'y avais même pas pensé  :sweat: )


---------------
J'aime pas Apple...
n°786655
Alkor2001
Posté le 05-07-2004 à 10:03:04  profilanswer
 

Bon bha merci m0rbac, une fois de plus je vais pouvoir échapper au débuggeur, un simple "Rebuild All" a réglé le problème sur lequel je m'énervais depuis 3 mois...  :jap:  
 
Comme quoi j'ai encore beaucoup de choses à apprendre...  :wahoo:


---------------
J'aime pas Apple...
n°786662
Kristoph
Posté le 05-07-2004 à 10:20:57  profilanswer
 

Comme d'utiliser des outils de gestion de projet qui marchent.
 
Visiblement ton IDE ne fait pas le travail correctement, tu pourrais essayer d'utiliser autre chose comme : http://www.scons.org/ par exemple.


Message édité par Kristoph le 05-07-2004 à 10:22:24
n°786959
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 05-07-2004 à 15:05:58  profilanswer
 

Kristoph a écrit :

Comme d'utiliser des outils de gestion de projet qui marchent.
 
Visiblement ton IDE ne fait pas le travail correctement, tu pourrais essayer d'utiliser autre chose comme : http://www.scons.org/ par exemple.


s'il utilise Visual C++ 6, c'est normal, c'est une grosse fourmillière à bugs à ce niveau


---------------
J'ai un string dans l'array (Paris Hilton)
n°787432
el muchach​o
Comfortably Numb
Posté le 05-07-2004 à 23:06:02  profilanswer
 

Alkor2001 a écrit :

Bon bha merci m0rbac, une fois de plus je vais pouvoir échapper au débuggeur, un simple "Rebuild All" a réglé le problème sur lequel je m'énervais depuis 3 mois...  :jap:  
 
Comme quoi j'ai encore beaucoup de choses à apprendre...  :wahoo:


 
En effet, la première étant qu'il faut faire un Rebuild all le plus souvent possible (tous les soirs avant de partir par exemple), et non pas tous les 3 mois.
La deuxième est que le debogueur est ton ami, et non ton ennemi.


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

  Plantage inexpliqué dès que je touche à un .h

 

Sujets relatifs
activer une touche du clavierVC++6.0 Savoir si une touche a été enfoncée
jTextPane et touche Tab[awt]État d'une touche pressée/relâchée
Boucle infinie jusqu'à touche appuyée[HTML] Problème de textarea et touche TAB...
[pda pocket pc C#] code touche[HTML]Besoin d'aide d'un mec qui touche un peu...
Site en XHTML/CSS >> plantage iMacinterrompre une boucle avec une touche du clavier
Plus de sujets relatifs à : Plantage inexpliqué dès que je touche à un .h


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