lamoueste
Messages postés76Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention 3 juillet 2007
-
3 oct. 2005 à 09:47
meech
Messages postés209Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention14 août 2007
-
3 oct. 2005 à 13:38
Bonjour a tous voila j'ai un probleme avec un WaitForSingleObject dans ma fonction il devrait sortir au bout d'un certain temps dependant d'une variable ( int cpt) mais il reste bloquer a l'interieur alors je n'arrive pas a savoir d'ou vient l'erreur :( si quelqu'un a une idee merci d'avance :
uiCpt=1;
// wait for Duree * Minute or a press on the button stop
WaitForSingleObject(hEv,uiCpt*5000);
meech
Messages postés209Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention14 août 2007 3 oct. 2005 à 13:36
Re,
Un problème de cast, peut-être, théoriquement le second argument doit être un DWORD et non un entier (int).
<li>Un DWORD (double mot)
correspond à un entier non signé (codé sur 4 octets en environnement 32
bits). Il me semble que DWORD est défini par une macro de ce genre :
#define DWORD unsigned int
</li>
<li>Un int peut être signé (codé sur 2 octets sur les machines 16 bits et sur 4 pour les équipements 32 bits).
</li>
En gros, il semblerait que les parenthèses que tu as disposées s'apparente à :
WaitForSingleObject(hEv,(DWORD°(uiCpt*5000));
(...) dans le cas où ta variable uiCpt
était bien un entier de type int.
Pour information, quel compilateur utilises-tu ? Mais, l'important n'est-il pas que ta réalisation fonctionne bien ?
meech
Messages postés209Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention14 août 2007 3 oct. 2005 à 13:07
Ah ! J'ai cru que c'était un mutex ou un truc du genre (je n'avais pas fait attention au nom du handle, pourtant assez explicite, hEv).
Ben, là, comme cela, je ne vois pas parce que tu sembles utiliser correctement la fonction...
S'il n'y a pas de confidentialité de ton code, n'hésite pas à me [mailto:programmation@fmichaud.com l'envoyer], j'essaierai de regarder. Mais je soupçonne plus l'hypothèse d'un problème en amont (l'évenement en l'occurence) qu'une utilisation incorrecte de la fonction.
A plus tard.
Vous n’avez pas trouvé la réponse que vous recherchez ?
lamoueste
Messages postés76Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention 3 juillet 2007 3 oct. 2005 à 13:18
Ca y est j'ai trouvé l'origine du bug ( meme si je ne comprend toujours pas pourquoi... ) : a la place de :
uiCpt*5000 =>(uiCpt*5000) ce qui donne
WaitForSingleObject(hEv,(uiCpt*5000));
L'ajout de parenthese corrige le bug mais je ne sais pas pourquoi...
Si quelqu'un a connais la reponse juste pour l'aspect culturel :)