IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

booléan qui change de valeur debug/release


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 39
    Points : 27
    Points
    27
    Par défaut booléan qui change de valeur debug/release
    Bonjour

    J'ai un comportement anormal avec un booléan. Mon appli est basé sur un CDialog, qui contient un TabCtrl, dans lequel j'ai deux onglet sous forme de CFormView (je vais les nommer A et B)

    Dans le CFormView A, j'ai un bouton "Options avancées" qui permet d'accéder à... des options avancées. Le click sur ce bouton redimensionne donc le CFormView A, le TabCtrl et bien sur la fenêtre. Je mémorise le fait que les options sont ouverte avec un booléan.

    Lorsque que je switch sur le CFormView B, je teste si les options sont ouverte ou pas. Si elles sont ouverte, je redimensionne à sa taille "normal" la fenetre, la TabCtrl. Si elles sont fermées, je touche à rien.

    Lorsque que je switch sur le CFormView A, je test également si les options sont ouverte ou pas, si c'est la cas, je redimensionne donc le CFormView A, le TabCtrl et bien sur la fenêtre.

    Dans ma classe qui hérite du CFormView ( le A ), j'ai donc un bool et un méthode qui renvoir la valeur bool (ouvertes ou fermées).

    En mode débug, aucun problème, le comportement est normal. En mode release, la valeur de retour de ma méthode (qui indique si les options sont ouvertes ou pas) est suceptible de renvoyé une mauvaise valeur.

    Aléatoirement, à chaque exécution, il renverra la bonne réponse (vrai ou faux) ou la mauvaise.

    J'ai pu lire qu'une des différences entre le mode débug et release était les valeurs par défaut des variables non initialisées. J'ai bien sur vérifié, mais je trouve rien d'anormal.

    Si vous avez une piste ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Bonjour,
    Ça peut être un comportement indéfini entrainant un débordement de tableau qui écrit là où il ne faut pas...

    Sinon, ben je ne sais pas vraiment...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    Il y a principalement 2 différences au niveau de la mémoire entre debug & release :

    1. en debug le contenu est initialisé (valeurs par défaut des variables, mais aussi remplissage des blocs alloués sur le tas avec new) ; en release rien de tout ça.

    2. en debug, des zones "no man's land" sont réservées avant et après chaque bloc alloué, pour détecter les "buffer overruns" ; ceci n'existe pas en release évidemment, ce qui fait que les blocs alloués dont l'utilisateur dispose sont d'une certaine manière plus "proches" les uns des autres, et le risque d'écrasement en cas de (léger) débordement est donc plus grand.

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    merci pour vos réponse. j'ai contourné le problème. Mon problème est résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Matlab qui "change mes valeurs", problème de format?
    Par sylvain62 dans le forum MATLAB
    Réponses: 9
    Dernier message: 29/01/2010, 11h55
  2. Variable qui change de valeur toute seul :(
    Par lcfseth dans le forum C
    Réponses: 12
    Dernier message: 22/12/2007, 12h25
  3. choix d'un radioboutton qui change les valeurs d'une comboBox
    Par poussin_44 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 04/07/2007, 09h10
  4. Réponses: 1
    Dernier message: 23/04/2007, 13h22
  5. Chaine de caractère qui change de valeur
    Par HaTnuX dans le forum C
    Réponses: 7
    Dernier message: 03/12/2006, 23h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo