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 :

DATA : gpointer ?


Sujet :

GTK+ avec C & C++

  1. #1
    A_B
    A_B est déconnecté
    Membre confirmé Avatar de A_B
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 153
    Par défaut DATA : gpointer ?
    Dans certaines fonction GTK on retrouve des pointeur DATA de type gpointer , alors comment exploiter ces pointeur, et quelle type de pointeur peut on utiliser a leurs place (passer comme argument au fonctions) ?
    MERCI !

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Ce n'est rien d'autre que la donnée que tu passes à la fonction g_signal_connect (le dernier argument) ! Cet argument étant de type gpointer soit void *, c'est un type générique donc qui peut contenir n'importe quel type de donnée

    Le tout après est de récupérer cette donnée par rapport à son type d'origine. Un exemple avec un structure passée en argument à la fonction précédement citée (enregistrement de callback):

    Si on considère un pointeur sur la structure suivante passée en dernier argument de la fonction g_signal_connect:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    typedef struct
    {
       int a;
       char * sz_str;
    }
    my_st;
    on pourrait la récupérer comme ceci dans un callback par exemple d'un bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void cb_clicked (GtkWidget * wid, gpointer data)
    {
       my_st * st = data;
       ...
       /* Utilisation de la donnee recuperee: */
       printf ("%s, %d\n", data->sz_str, data->a);
    }
    Ca te vas ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    A_B
    A_B est déconnecté
    Membre confirmé Avatar de A_B
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 153
    Par défaut
    Oui c'est clair MERCI !

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

Discussions similaires

  1. Problème gpointer data
    Par france38 dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 27/10/2011, 17h30
  2. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46
  3. import de bd access 97 => sqlserveur : Data overf
    Par neo.51 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2003, 15h17
  4. Query data set
    Par Sandra dans le forum JBuilder
    Réponses: 3
    Dernier message: 20/01/2003, 10h08
  5. [Pointer]Treeview.Data
    Par rbag dans le forum Composants VCL
    Réponses: 7
    Dernier message: 31/08/2002, 01h44

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