threads et fonctions membres / visual C++ - C++ - Programmation
Marsh Posté le 25-01-2005 à 18:36:58
De mémoire tu peux lui passer effectivement qu'un pointeur sur une fonction statique, mais il suffit de lui passer en argument "lpParameter" this, et là tu peux appeler la fonction de ta classe
Marsh Posté le 25-01-2005 à 19:19:24
Merci pour la reponse mais c'est un peu porc, il est ou l'interet d'avoir une fonction statique ?
Est-ce quelqu'un connait la raison pour laquelle c'est interdit sinon ?
Marsh Posté le 25-01-2005 à 19:23:40
vi, c'est une fonction type callback, donc prédéfini, ça ne peut pas être une fonction membre ...
Recherche des infos les pointeurs de fonction membre ...
super trivial ...
Marsh Posté le 25-01-2005 à 19:27:42
tu parles de la fonction que je suis sensé envoyer a createthread ?
Marsh Posté le 25-01-2005 à 19:33:10
ok, je pense avoir capté un truc
j'ai lu ca sur les fonctions de callback
[url] http://www.function-pointer.org/zip/f_fpt.pdf [/url]
donc ma fonction devrait obligatoirement etre de ce modele ?
Marsh Posté le 25-01-2005 à 19:36:37
Oui, je comprends que ça puisse paraitre "porc", mais on ne peut pas faire autrement.
A mon avis les pointeurs sur fonction membre n'ont pas été bien pensé au depart ...
Marsh Posté le 25-01-2005 à 19:58:15
on peut regarder ici pour un bon exemple : http://c.developpez.com/faq/cpp/?p [...] ion_membre
Marsh Posté le 25-01-2005 à 20:01:21
JoelF> je te renvoie au lien que tu avais donné :
http://www.codeproject.com/cpp/SoloGenericCallBack.asp
dans le topic désopilant de ChrisBK:
http://forum.hardware.fr/hardwaref [...] 0082-1.htm
En l'occurence, passer un functor de boost à un appel système de Windows, je suis pas sûr que ça se fasse facilement...
edit: Ah, tu veux dire, passer par les libs threads de boost ? Bonne idée...
Marsh Posté le 25-01-2005 à 20:03:05
ReplyMarsh Posté le 25-01-2005 à 22:13:04
ReplyMarsh Posté le 27-01-2005 à 19:50:25
Je parle des pointeurs sur fonction membre, perso je trouve ça infame, maintenant j'avoue ne pas avoir regardé boost, mais je doute que ça resolve simplement les problèmes
Marsh Posté le 25-01-2005 à 18:33:11
Bonjour,
J'essaye de lancer une thread a l'aide de la fonction CreateThread de Windows :
C'est chiant tou ce blabla mais je dois passer un pointeur de fonction pour lpStartAddress.
Tout se passe bien pour le passage d'un pointeur de fonction classique mais je suis dans une classe et j'aimerais bien utiliser une fonction membre comme parametre du CreateThread.
J'ai seulement reussi a passer la fonction appelée lorsqu'elle etait definie comme statique mais je perd tout l'interet de l'acces aux données d'instance.
Est-ce possible ? Est-ce que ca rime a rien (voire debile) ?