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

C++/CLI Discussion :

Pointeur vers un pointeur de propriété membre managé


Sujet :

C++/CLI

  1. #1
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut Pointeur vers un pointeur de propriété membre managé
    Bonjour,

    Je souhaite gérer l'ouverture d'un fenetre afin qu'elle ne puisse s'ouvrir deux fois.

    Pour cela j'utilise un singleton qui permet de retourner une instance toujours unique.

    Le problème est lors de la fermeture de cette fenêtre je ne parviens pas a remettre le pointeur vers la fenêtre a nullptr;

    Pour cela j'ai tenté plusieurs solution :
    La première était avec une référence du pointeur, mais ça n'as rien changé au problème.

    J'ai donc tenté en deuxième temps de passer un pointeur vers le pointeur du singleton.

    Cela donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ui_newUser^ objSession::getNewUser()
    {
    	if(formUser == nullptr)
    	{
    		ui_newUser^ tmpPt = gcnew ui_newUser();
    		objSession::killNewUser();
    		tmpPt->definePt(&tmpPt);
    		formUser = tmpPt;
    	}
     
            return formUser;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void definePt(ui_newUser^* ptSingle)
    {
    	ptSingleton = ptSingle;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *ptSingleton = nullptr;
    Le problème est que lors de la mise a nullprt de l'indirection de ptSingleton l'application plante et me donne le message suivant :

    Une exception non gérée du type 'System.AccessViolationException' s'est produite dans Module inconnu.
    Informations supplémentaires : Tentative de lecture ou d'écriture de mémoire protégée. Cela indique souvent qu'une autre mémoire est endommagée.
    j'ai pensé que ça pouvais venir du fait que le pointeur de singleton est en privé, j'ai donc pour testé (même si ça fait perdre tout le sens du singleton) de mettre le pointeur en publique, le résultat est le même.

    Si l'un de vous a une idée qui pourrait me sauver ça serait pas de refut.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    de quel type est ptSingleton
    pourquoi ne pas utiliser un handle comme ui_newUser^ ?

  3. #3
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    ptSingleton est de type ui_newUser^

    un handle comme ui_newUser^
    C'est a dire ?

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    dans ce cas, tu n'as qu'à faire :

    http://dotnet.developpez.com/faq/cpp...e=type#nullptr

    non ?

  5. #5
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    C'est ce que j'avais fait initialement mais apparemment ça ne change rien.

    En fin de compte et au bord du suicide j'ai abandonner le système de multi fenêtre.
    On m'as conseillé pour éviter ce genre de problème d'avoir une propriété booléenne static dans ma ui_newUser qui me permet de savoir si l'a fenêtre est affiché ou pas, je pense donc faire comme ça la prochaine fois.

    Mais ce qui me turlutupine c'est que ça aurait du marcher avec le pointeur

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    je confirme, ca devrait marcher

Discussions similaires

  1. Pointeur vers fonction membre
    Par poukill dans le forum C++
    Réponses: 20
    Dernier message: 17/01/2011, 10h08
  2. Réponses: 2
    Dernier message: 26/05/2010, 13h12
  3. pointeur vers une fonction membre
    Par salseropom dans le forum C++
    Réponses: 2
    Dernier message: 03/02/2010, 14h51
  4. Réponses: 10
    Dernier message: 28/08/2008, 13h00
  5. Réponses: 1
    Dernier message: 16/07/2007, 13h53

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