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++ Discussion :

static vector <obj*> dans objet erreur de linkage et soucis de pointeur


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 87
    Points : 77
    Points
    77
    Par défaut static vector <obj*> dans objet erreur de linkage et soucis de pointeur
    Bonjour

    ça a toujours un rapport avec mon dernier poste sur ce forum.


    J'ai une classe Window récuperée sur un programme open source, qui contient quelque fonction pour piloter les handles, une class Application et une class Form qui me sert de class de base avec laquelle (pour le moment) je souhaite enregistrer la structur WNDCLASSEX et dont mes formulaire en sont hérité.

    Je suis confronté à deux problemes.

    Le premier: il ne me link pas le static vector<TCHAR*> m_pListClassName;
    qui doit me contenir juste les noms de class. J'aurai souhaité enregistrer ma class que si sont nom n'existe pas dans la list. Pour cela, ma liste doit faire parti de ma class de base et rester static.. non?

    Le deuxieme soucis et dans l'enregistrement de mes Form dans l'objet Application,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    BOOL AddForms(Form* aForm)
    {	if(!m_pForm)
    	{	this->m_pForm = new Form;
    	//(*this->m_pForm) =(* aForm);
    		this->m_pForm=aForm;
    		return TRUE;
    	} 
    	return FALSE;
    }
    la ligne mise en commentaire fais que mon programme démarre mais ne fonctionne pas, par contre la deuxieme oui, tout marche mais je ne peux pas désallouer ma mémoire...

    pour vous simplifier le travail,j'ai tout mis dans les zips..
    merci de votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Points : 21
    Points
    21
    Par défaut
    Bonjour,
    dans form.cpp pour le link du vector, rajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vector<TCHAR*> Form::m_pListClassName;
    Il faut bien que la variable soit "associée" à un cpp



    Et pour l'autre d'après ce que j'ai vu c'est dans ta 2eme fonction que ça ne fonctionne par car apparement tu t'es trompé de variable
    dans AddFormsto tu alloues m_ptoForm mais utilise m_pForm

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 87
    Points : 77
    Points
    77
    Par défaut merci
    Si j'ai fais deux fonctions les même, c'est juste pour tester le vector, pour le premier pb, ça marche, merci
    Mais dans ces deux fonctions, il y a une ligne mis en commentaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    BOOL AddFormsto(Form* aForm)
    {	if(!m_ptoForm)
    	{	this->m_ptoForm = new Form;
    	//(*this->m_ptoForm) =(* aForm);
    	//	this->m_ptoForm=aForm;
    		return TRUE;
    	} 
    	return FALSE;
    }
    J'explique ce que je souhaite faire exactement :
    1 je reçois l'adresse d'un objet Form
    2 j'alloue en mémoire un espace pour mon objet
    3 je copie les informations de mon objet (mais pas l'adresse)...

    des deux lignes en commentaire,
    la première:
    ne fonctionne pas mais elle me copie bien les info en me gardant les adresses des deux variables,
    la deuxieme :
    la variable reçu en paramètre m'écrase l'adresse de la mémoire alloué, donc mon new ne sert strictement à rien mais mon programme fonctionne, j'ai bien ma petite fenetre.

    Je pense que j'ai fais le tour de se que je comprennai. merci de votre aide

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Points : 21
    Points
    21
    Par défaut
    Si ça marche alors c'est que le problème viens peut être de ce qu'il se passe après dans le programme?.
    Je ne comprend pas le :

    "ne fonctionne pas mais elle me copie bien les info "

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 87
    Points : 77
    Points
    77
    Par défaut
    Comme ma classe Form est hérité de Window,

    => _hSelf


    En modifiant mes classes Je ne sais pas comment ça se fait, ça fonctionne,... J'ai deux fenêtres qui se balladent et elles ont bien été créées dynamiquement et sont donc bien détruite pas par le destructeur de Application...
    Merci Ryan_ pour ta collaboration

  6. #6
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 87
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par Ryan_ Voir le message
    Il faut bien que la variable soit "associée" à un cpp

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

Discussions similaires

  1. un problème avec un tableau d'objet, erreur bete ?
    Par Heero_2040 dans le forum C++
    Réponses: 12
    Dernier message: 13/07/2006, 13h20
  2. Erreur au linkage de la zlib en static
    Par Flo. dans le forum C++
    Réponses: 10
    Dernier message: 05/05/2006, 09h23
  3. [Obj] charger un objet
    Par ffomnislash dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/08/2005, 14h49
  4. Renvoyer un type structuré dans objet OLE
    Par Bleuarff dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 13/05/2005, 20h05

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