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

  FORUM HardWare.fr
  Programmation
  C++

  [MFC]Les .h sont limités en taille?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MFC]Les .h sont limités en taille?

n°696317
Alkor2001
Posté le 09-04-2004 à 11:09:52  profilanswer
 

Bonjour,
Je viens de commencer un stage durant lequel je dois tout d'abord finaliser un logiciel codé en MFC sous Visual C++ 6...
Donc pas de problèmes, je le modifie, j'y ajoute des fonctionnalités, tout marche bien, sauf que là j'ai un problème que je ne comprends pas du tout!
En fait, dès que j'essaye d'ajouter un char[128] dans un des .h le programme fonctionne, mais à la sortie il plante (soit en affichant une erreur Windows "ce programme a causé une défaillance ... mfc42.dll ...", soit en rouvrant la fenêtre principale à l'infini jusqu'au plantage!)
Ce qui est bizarre, c'est que je peux mettre un char[2] ou un BYTE dans le .h, ça marchera, mais si je veux mettre un char[] de taille supérieure ou un int, paf plantage...
 
Donc la question que je me pose, c'est: Est ce qu'en MFC la taille des .h est limitée?  
 


---------------
J'aime pas Apple...
mood
Publicité
Posté le 09-04-2004 à 11:09:52  profilanswer
 

n°696322
El_gringo
Posté le 09-04-2004 à 11:15:46  profilanswer
 

Non.
Y a surement un débordement mémoire quelque part (genre dépassemnt de tableau, erreur d'allocation, ...)

n°696324
Alkor2001
Posté le 09-04-2004 à 11:18:19  profilanswer
 

el_gringo a écrit :

Non.
Y a surement un débordement mémoire quelque part (genre dépassemnt de tableau, erreur d'allocation, ...)


 
Ok...
Mais je ne comprends pas comment un débordement peut avoir lieu alors que je ne fais qu'ajouter une variable dans le .h et que je n'y ai même pas encore touché!
 
Surtout que le plantage n'intervient qu'en sortie du programme, tant que je l'utilise sans sortir tout fonctionne parfaitement...
 
Enfin merci de ta réponse, ça me rassure...


---------------
J'aime pas Apple...
n°696335
pascal_
Posté le 09-04-2004 à 11:40:31  profilanswer
 

Alkor2001 a écrit :

Bonjour,
Je viens de commencer un stage durant lequel je dois tout d'abord finaliser un logiciel codé en MFC sous Visual C++ 6...
Donc pas de problèmes, je le modifie, j'y ajoute des fonctionnalités, tout marche bien, sauf que là j'ai un problème que je ne comprends pas du tout!
En fait, dès que j'essaye d'ajouter un char[128] dans un des .h le programme fonctionne, mais à la sortie il plante (soit en affichant une erreur Windows "ce programme a causé une défaillance ... mfc42.dll ...", soit en rouvrant la fenêtre principale à l'infini jusqu'au plantage!)
Ce qui est bizarre, c'est que je peux mettre un char[2] ou un BYTE dans le .h, ça marchera, mais si je veux mettre un char[] de taille supérieure ou un int, paf plantage...
 
Donc la question que je me pose, c'est: Est ce qu'en MFC la taille des .h est limitée?  
 
 


 
Euh, tu es conscient que n'importe quel fichier qui inclura ton .h va générer un tableau de char[128] ? Si ton .h est inclu 10 fois, dans l'exe il y aura 10 tab de char[128]. Es-tu sûr que c'est bien ce que tu veux ?
 
 

n°696340
pascal_
Posté le 09-04-2004 à 11:43:42  profilanswer
 

Alkor2001 a écrit :


 
Ok...
Mais je ne comprends pas comment un débordement peut avoir lieu alors que je ne fais qu'ajouter une variable dans le .h et que je n'y ai même pas encore touché!
 
Surtout que le plantage n'intervient qu'en sortie du programme, tant que je l'utilise sans sortir tout fonctionne parfaitement...
 
Enfin merci de ta réponse, ça me rassure...


 
Ben non. Il y a quand même des erreurs dans ton prog...
Tu compiles en quoi : debug ou release ? Parcequ'un passage Debug->Release peut faire apparaître plein d'erreurs qui ne "s'expriment" pas en mode debug... tu peux tenter...
 
 
 

n°696346
Alkor2001
Posté le 09-04-2004 à 11:50:54  profilanswer
 

pascal_ a écrit :


Euh, tu es conscient que n'importe quel fichier qui inclura ton .h va générer un tableau de char[128] ? Si ton .h est inclu 10 fois, dans l'exe il y aura 10 tab de char[128]. Es-tu sûr que c'est bien ce que tu veux ?


 
Oui j'en suis conscient, mais je ne vois pas d'autre moyen pour faire ça, j'ai besoin d'accéder à cette donnée depuis plusieurs autres classes... (et ce .h n'est inclu que 2 fois)
 
Sinon là j'étais en mode Release, je vais voir en debug si ça change quelque chose.


---------------
J'aime pas Apple...
n°696370
Alkor2001
Posté le 09-04-2004 à 12:01:59  profilanswer
 

T'avais raison Pascal_, en debug ça fonctionne parfaitement, le plantage n'intervient que dans la version release...


---------------
J'aime pas Apple...
n°696378
pascal_
Posté le 09-04-2004 à 12:08:04  profilanswer
 

Alkor2001 a écrit :

T'avais raison Pascal_, en debug ça fonctionne parfaitement, le plantage n'intervient que dans la version release...


 
oui mais c'est sûrement ton programme qui déconne hein, pas Visual.
 
Sinon, pour ton problème de char[128], il faut que tu utilises le mot-clé extern.
 
Dans le .h tu fait "extern char[128];" qui déclare le tableau.
Dans un .c, tu défini le tableau avec un "char[128];".
 
 

n°696388
Alkor2001
Posté le 09-04-2004 à 12:15:51  profilanswer
 

pascal_ a écrit :


 
oui mais c'est sûrement ton programme qui déconne hein, pas Visual.
 
Sinon, pour ton problème de char[128], il faut que tu utilises le mot-clé extern.
 
Dans le .h tu fait "extern char[128];" qui déclare le tableau.
Dans un .c, tu défini le tableau avec un "char[128];".


 
Je me doute bien que le problème vient de mon prog hein!   ;)  
(je n'ai ni le niveau ni les compétences pour critiquer VC++)
 
Merci pour le "extern", je ne connaissais pas... C'est sûr que ça serait beaucoup plus propre!


---------------
J'aime pas Apple...
n°696469
Alkor2001
Posté le 09-04-2004 à 13:48:04  profilanswer
 

Merci Pascal_, ça fonctionne très bien maintenant, et je vais pouvoir bien améliorer mon code avec ça!
 
J'aurais appris un truc important aujourd'hui en tout cas...   :jap:


---------------
J'aime pas Apple...

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

  [MFC]Les .h sont limités en taille?

 

Sujets relatifs
Probleme de compatibilité MFC directX 9[JAVA 2D] Redimensionner la taille d'un composant en fonction du texte
Taille fixe pour pseudo frames?[Visual c++] convertir une taille en Octet automatiquement 2
[Visual c++] convertir une taille en Octet automatiquementSuperposition et Layering pour une application MFC
Faire un graphique de grande taille (> a la resolution de l'ecran)Taille de boutons simple et feuille de style
Session contraintes/ limitesDéfinir la taille d'un document HTML
Plus de sujets relatifs à : [MFC]Les .h sont limités en taille?


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