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 :

[VS2010] - Dialogue MFC, contrôle button MFC et memory leaks


Sujet :

MFC

  1. #1
    Membre confirmé
    Avatar de Nicolas Bauland
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 119
    Points : 563
    Points
    563
    Par défaut [VS2010] - Dialogue MFC, contrôle button MFC et memory leaks
    Bonjour,

    Je voudrais placer un contrôle de type contrôle button MFC dans une application "boite de dialogue" créer à l'aide de l'assistant.

    Lorsque j'ajoute ce type de contrôle, j'ai ce message qui apparait dans la fenêtre de sortie du debugger:
    *Dialog closed.
    Detected memory leaks!
    Dumping objects ->
    {513} client block at 0x00B2BF68, subtype c0, 212 bytes long.
    a CMFCVisualManager object at $00B2BF68, 212 bytes long
    Object dump complete.
    Aurais-je oublié de définir quelquechose ?

    D'avance merci.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    c'est un peu étrange .
    tu as une initialisation d'un objet CMFCVisualManager dans ton InitInstance ?

  3. #3
    Membre confirmé
    Avatar de Nicolas Bauland
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 119
    Points : 563
    Points
    563
    Par défaut
    Citation Envoyé par farscape Voir le message
    tu as une initialisation d'un objet CMFCVisualManager dans ton InitInstance ?
    Non, il doit s'agir d'une initialisation par défaut.
    Faudrait-il que j'en rajoute une à la main ?

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    essaye de rajouter dans ton initinstance:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CMFCVisualManager::SetDefaultManager (RUNTIME_CLASS(CMFCVisualManagerWindows));

  5. #5
    Membre confirmé
    Avatar de Nicolas Bauland
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 119
    Points : 563
    Points
    563
    Par défaut
    Pendant le même temps j'ai ajouté une fonction exitInstance dans laquelle j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	CMFCVisualManager::GetInstance()->DestroyInstance();
    Je ne sais pas si cela suffira mais apparemment, je n'ai plus de memory leaks quand je ne fais qu'ajouter un bouton.

    Je vais aussi tester ta solution, et je reviens avec le résultat des deux.

  6. #6
    Membre confirmé
    Avatar de Nicolas Bauland
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 119
    Points : 563
    Points
    563
    Par défaut
    Les deux solutions me donnent des memoryleaks.

    En fait je ne suis pas certain de bien employer le CMFCVisualManager: je n'ai pas une application sdi/mdi, mais seulement une application boite de dialogue.
    Si je souhaite ajouter des mfc button dessus. Quelles sont les étapes à suivre pour le faire ? Est-ce possible d'ailleurs ?

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    je n'ai jamais essayé ce cas de figure sur une application boîte de dialogue.
    je pense qu'il va falloir inspecter les codes MFC pour trouver une solution à ce problème.
    je commencerai par chercher l'allocation de l'objet CMFCVisualManager dans ce contexte ...

  8. #8
    Membre confirmé
    Avatar de Nicolas Bauland
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 119
    Points : 563
    Points
    563
    Par défaut
    Bon les mains dans le camboui, j'aime pas trop. Je vais faire sans ... Ce sera moins joli, mais plus rapide à mettre en place. Merci quand même d'avoir pris le temps de m'en consacrer.

  9. #9
    Membre confirmé
    Avatar de Nicolas Bauland
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 119
    Points : 563
    Points
    563
    Par défaut
    Et bien non, je n'ai pas trouvé moi même la solution, mais la voici, venant de Microsoft même, il suffit d'ajouter dans la méthode ExitInstance de l'application, l'appel à la fonction:
    J'ai testé, et ça semble très bien fonctionner . En espérant que cela puisse servir à d'autres.

    Toujours d'après Microsoft, cela serait corrigé dans une prochaine version de Visual Studio:
    https://connect.microsoft.com/Visual...s-memory-leak#

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

Discussions similaires

  1. Radio Button MFC
    Par beb30 dans le forum MFC
    Réponses: 3
    Dernier message: 19/04/2006, 10h51
  2. [MFC] Contrôle ActiveX vide
    Par tus01 dans le forum MFC
    Réponses: 3
    Dernier message: 15/12/2005, 20h44
  3. Compilation TAO / Mfc : Memory Leaks
    Par Rolsct dans le forum CORBA
    Réponses: 4
    Dernier message: 17/04/2005, 19h13
  4. [MFC] Thread & memory leaks
    Par Racailloux dans le forum MFC
    Réponses: 7
    Dernier message: 15/03/2005, 12h44
  5. [MFC] A la chasse au memory leak
    Par Yabo dans le forum MFC
    Réponses: 17
    Dernier message: 27/06/2004, 17h35

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