dev_hy
Messages postés7Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention17 juillet 2007
-
5 oct. 2006 à 16:10
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 2014
-
5 oct. 2006 à 20:44
voila je veux utiliser les threads sous windows. alors j'ai crée un classe thread, dans la méthode de créeation de thread toute est bon mais il m'affiche l'erreur suivente:
error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void)' to 'unsigned long (__stdcall *)(void *)'. merci pour votre aide
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 5 oct. 2006 à 18:36
Oui effectivement, ce paramètre semble être un résidu de compatibilité ascendante avec 95/98/Me pour lesquelles il ne doit pas être nul. Et c'est le handle retourné par CreateThread() qui est utilisé par les autres fonctions de l'api.
Par contre, rien ne garantit que 0 soit NULL. NULL c'est NULL et 0 c'est 0. Par convention c'est pareil, mais c'est juste une convention et un raccourci utile, pas un standard. Si demain la macro définissant la valeur de NULL est changée, boum...
Vous n’avez pas trouvé la réponse que vous recherchez ?
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 5 oct. 2006 à 20:09
Je pense plutôt qu'il n'a pas définit sa fonction en __stdcall, et qu'il n'a pas définit de paramètres.
Le prototype de ThreadFunc :
static HRESULT __stdcall ThreadFunc(LPVOID lpParam);
<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.