Bonjour,

j'ai un petit soucis. J'ai créé une interface graphique en GTK, j'aimerais l'intégrer au reste du projet en utilisant le "multithread" (je n'en ai jamais fait). j'aimerais faire appele à une fonction en lui envoyant des arguments. J'ai trouvé des solutions mais je ne sais pas les interpréter. Pour moi, void, ça veut dire vide, alors faire un pointer "vide" pour envoyer des données, je suis plus.

j'ai quand même essayé mais ça n'aboutit pas. A la réception, la fonction considère que la variable n'existe pas.

voila la struct à passer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
typedef struct arg_pour_thread
{
     int *argc;
     const char ***argv;
}ST_thread;
le main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main (int argc, const char **argv)
{
    //déclarer les threads
    pthread_t thread_IHM;
    ST_thread *data;
    //remplissage des data "arg"
    data->argc=argc;
    data->argv=argv
    //création du thread IHM
    if (pthread_create(&thread_IHM,NULL,IHM,data))
        printf("Ereur création thread");
 
    return 0;
}
et le début de la fonction appelée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
void IHM (ST_thread* data)
{
 
    //initialisation de GTK
 
    gtk_init (*data->argc,*date->argv);
    //création de la fenétre principale
    GtkWidget *main_fenetre = NULL;
    main_fenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (main_fenetre), "Yes You Can");
    gtk_window_set_position (GTK_WINDOW (main_fenetre), GTK_WIN_POS_CENTER);
    g_signal_connect (main_fenetre, "destroy", gtk_main_quit, NULL);
les ereurs sont :
data->argc=argc;
data->argv=argv;
make pointer from integer without a cast
et
passing argument 3 imcompatible type of pointer

J'espère que ce que j'ai raconté est compréhensible. Merci d'avance. Philippe

P.S: si vous avez des conseilles, critiques, remarques ou que sais-je encore sur ma manière de coder je suis preneur. Merci