Bonjour à tous,
Je rencontre un petit problème.
J'ai une class THREAD qui sert tout simplement à encapsuler le système de thread de l'API Win32.
Dans cette classe j'ai une fonction DWORD WINAPI lancer_thread(LPVOID), cette fonction est appelée lors de la création du thread (3ème argument de CreateThread()).
Cette fonction appelle en réalité une autre fonction pointée par un membre de la classe THREAD.
C'est simplement pour l'encapsulation, ça me permet d'utiliser des types standards pour créer ma fonction-thread() dans mon code. Au lieu de faire une fonction DWORD WINAPI fonction(LPVOID), je fait une void fonction(void*).
Mais voilà, lorsque ma classe appelle CreateThread, elle a besoin d'un pointeur sur lancer_thread (3ème argument de CreateThread()), et si j'écris :
Mon compilateur (GCC) Me renvoie gentiment l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part CreateThread(NULL,0,&this->lancer_thread, parametres, CREATE_SUSPENDED, &this->id_thread);![]()
Je veux bien moi mais je ne peux pas mettre ma fonction en static!!ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say '&GM::THREAD::lancer_thread'
Comment faire?!?
Merci d'avance de vos réponses.
Spartan03
Partager