Bonjour,
J'aimerais exécuté la fonction membre d'une classe avec la fonction createthread mais je sais pas comment faire...
Quelqu'un pourrait-il m'aider ??
Version imprimable
Bonjour,
J'aimerais exécuté la fonction membre d'une classe avec la fonction createthread mais je sais pas comment faire...
Quelqu'un pourrait-il m'aider ??
Normalement ce n'est pas possible, la solution consistant à ruser, est d'utiliser une fonction statique ou globale pour démarer le thread en lui passant en paramètre un pointeur vers l'objet sur lequel appeller la méthode membre...
Ce semble être une astuce intéressante...
thx
Et comment je fais si je veux utiliser la fonction CreateThread pour exécuter une autre fonction en donnant plusieurs arguments ? Parce que j'ai pas bien compris en fait...
regarde ici :
http://c.developpez.com/faq/cpp/?pag...onction_membre
pour faire passer en plus un paramètre à la fonction membre, il te suffit de passer unau lieu d'un simpleCode:void*[2] static_param = { &inst_de_A, param }
par exemple et de modifier le reinterpret_cast pour avoir le bon type...Code:void* param = &inst_de_A;
Au fait: si tu utilises des fonctions de la Run-time library dans ton thread (fonctions de flux, ou même un simple malloc/new), n'utilise pas CreateThread() mais _beginthreadex() (défini dans process.h) qui permet d'initialiser certaines variables internes...