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

GTK+ avec C & C++ Discussion :

passage de variable


Sujet :

GTK+ avec C & C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    dessinateur projeteur VRD
    Inscrit en
    Mars 2009
    Messages
    32
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : dessinateur projeteur VRD
    Secteur : B�timent Travaux Publics

    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Par d�faut passage de variable
    Bonjour,

    Voici un exemple de code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    void affichage ()
    {
       struct truc
       {
          GtkWidget *var_1;
          GtkWidget *var_2;
       } NV;
       blabla...
       g_signal_connect (G_OBJECT(Btn_valider),
                               "clicked",
                               G_CALLBACK(machin),
                               &NV);
       blabla...
    }
     
    void machin(GtkWidget * widget, gpointer data)
    {
       récupération des variables de la structure truc
    }
    j'aimerai connaitre la m�thode pour r�cup�rer les donn�es des widgets var_1 et var_2 de la structure truc. Pour les utilis�es dans la fonction machin


    merci d'avance....

  2. #2
    Mod�rateur

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    struct truc
    {
          GtkWidget *var_1;
          GtkWidget *var_2;
    }
     
    void affichage ()
    {
       struct truc NV;
       blabla...
       g_signal_connect (G_OBJECT(Btn_valider),
                               "clicked",
                               G_CALLBACK(machin),
                               &NV);
       blabla...
    }
     
    void machin(GtkWidget * widget, gpointer data)
    {
       struct truc *t = data;
       t->var_1;
       t->var_2;
    }

  3. #3
    Membre averti
    Homme Profil pro
    dessinateur projeteur VRD
    Inscrit en
    Mars 2009
    Messages
    32
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : dessinateur projeteur VRD
    Secteur : B�timent Travaux Publics

    Informations forums :
    Inscription : Mars 2009
    Messages : 32
    Par d�faut
    d�sol� pour le manque d'information de ma part mais j'ai oubli� d'indiquer que le code �tait sur plusieurs fichiers voici donc le r�capitulatif :

    affichage.c
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    void affichage ()
    {
       struct truc
       {
          GtkWidget *var_1;
          GtkWidget *var_2;
       } NV;
       blabla...
       g_signal_connect (G_OBJECT(Btn_valider),
                               "clicked",
                               G_CALLBACK(machin),
                               &NV);
       blabla...
    }
    recuperation.c
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    void machin(GtkWidget * widget, gpointer data)
    {
       récupération des variables de la structure truc
    }
    j'ai suivi les modifications pour le code mais j'obtiens cette erreur :

    dereferencing pointer to incomplete type


    La structure se trouve en dehors de la fonction affichage ?
    Est-ce logique, ne devient-elle pas une variable globale ?

  4. #4
    Mod�rateur

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par d�faut
    Tu confonds d�claration de type et de variable. Ton type doit �tre d�clar� en dehors de ta fonction, de mani�re � �tre visible partout dans le fichier.

    Pour ta variable, tu fais bien de le noter vu que je me suis tromp� en la laissant locale... Elle ne doit pas forc�ment �tre globale, mais il faut que sa dur�e de vie soit au moins �gale � celle de ton programme, vu que lorsque ta callback sera appel�e, cette zone m�moire doit toujours exister. Hors ce n'est pas le cas dans ton code. NV est une variable locale, elle sera donc d�truite en sortant de ta fonction affichage. Pour que ta callback puisse y acc�der, elle doit toujours exister � ce moment l�, et �tre soit globale (ou statique, c'est � dire globale pour un unique fichier), ou locale avec une dur�e de vie suffisante (par exemple locale � la fonction main), ou d�clar�e dynamiquement.

Discussions similaires

  1. [langage] Probleme passage de variables entre modules
    Par Ludo167 dans le forum Langage
    R�ponses: 4
    Dernier message: 13/08/2004, 12h25
  2. Passage de variable dans un lien asp
    Par VirginieGE dans le forum ASP
    R�ponses: 4
    Dernier message: 27/07/2004, 10h06
  3. [Kylix] passage de variable en Libc
    Par zheng dans le forum EDI
    R�ponses: 11
    Dernier message: 06/05/2004, 14h14
  4. Passage de variable par methode post ?
    Par oazar dans le forum Flash
    R�ponses: 33
    Dernier message: 16/10/2003, 17h03
  5. [langage] Passage de variables...
    Par martijan dans le forum Langage
    R�ponses: 8
    Dernier message: 30/07/2003, 09h48

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