Bonjour,
Suite a un rapide d�tour par la Fac C++ pour trouver le moyen de pouvoir appeler une m�thode d'une classe dans un Thread... Cependant je me retrouve alors avec une erreur de compilation qui m'est inconnue.
Voici les diff�rentes parties n�cessaires :
Main.cpp
affichage.cpp
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 int main(int argc, char **argv) { affichage aff(argc, argv); HANDLE thread_aff; thread_aff = CreateThread( NULL, 0, &affichage::LunchThread, &aff, 0, NULL ); // ... }
affichage.h
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
24
25
26
27
28
29
30
31
32
33
34
35
36 // ... static DWORD WINAPI LunchThread( void *Param ) { affichage* Obj = reinterpret_cast<affichage*>( Param ); return Obj->start(); } DWORD affichage::start() { /* Creation de la fenetre */ Win = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_position(GTK_WINDOW(Win), GTK_WIN_POS_CENTER); gtk_window_set_default_size(GTK_WINDOW(Win), 320, 200); gtk_window_set_title(GTK_WINDOW(Win), "Commande"); /* Creation du label */ Status = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(Status), "<b>Status</b> : Demarrage"); gtk_label_set_justify(GTK_LABEL(Status), GTK_JUSTIFY_LEFT); gtk_container_add(GTK_CONTAINER(Win), Status); /* Connexion du signal "destroy" */ g_signal_connect(G_OBJECT(Win), "destroy", G_CALLBACK(OnDestroy), NULL); gtk_widget_show_all(Win); /* Demarrage de la boucle evenementielle */ //HANDLE thread_aff; //thread_aff = CreateThread(NULL,0,&affichage::set_all,this,0,NULL); gtk_main(); return 0; } // ...
Et l'erreur de compilation :
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 // ... class affichage { private: GtkWidget *Win; GtkWidget *Status; public: affichage(int &argc, char** &argv); ~affichage(); DWORD set_all(); static DWORD WINAPI LunchThread(void *Param); void affichage::set_status(char *value); DWORD start(); }; // ...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 Switching to target: default Compiling: main.cpp Compiling: classes\affichage.cpp Linking console executable: TPE.exe .objs\main.o:main.cpp:(.text+0x1c7): undefined reference to `_ZN9affichage11LunchThreadEPv@4' collect2: ld returned 1 exit status Process terminated with status 1 (0 minutes, 9 seconds) 0 errors, 0 warnings
Partager