Bonjour � tous !!
J'ai pass� les quatre derni�res ann�es, si pas les cinq derni�res ann�es � travailler en java, et je me disais, comme j'avais d�j� un bon niveau en c++ que �a allait aller tout seul, comme le v�lo cela ne s'oublie pas...
Mon soucis est le suivant:
un pote m'a demand� de lui donner un coup de main pour trouver le moyen de relancer un service qui s'�teint toutes les heures (je ne veux pas savoir pourquoi), sous XP.
Retroussant mes manches, j'ai �cris un service qui va s'occuper de faire un "poll", un test sur l'�tat du service en question (dont les param�tres se trouvent dans un fichier .ini) en fonction d'un laps de temps d�fini dans ce fichier .ini.
J'ai perdu un temps fou avec SetTimer(...) pour finalement �crire une nouvelle fonction qui fonctionne, �videment. (C'est une fonction qui lance un thread qui attend le temps imparti et qui renvoi un message disant, ok j'ai fini, tout b�te). Ca marche donc...
Mais ce qui ne me va pas c'est que SetTimer(...) n'a jamais voulu fonctionner.
Et en regardant dans le MSDN j'ai pourtant un tr�s bon niveau d'anglais, il est sp�cifi� qu'on peut utiliser une fonction "user function" utilisateur comme dernier param�tre � �tre ex�cut�e une fois le temps imparti �coul�... et bien apr�s mille essais... rien !! La fonction n'a jamais �t� ex�cut�e !!
Pourtant SetTimer renvoie un num�ro de HANDLE valide, mais quoi que je fasses, il ne se passe tout bonnement rien !! En plus le d�bugging d'un service c'est pas de la tarte (pas de fen�tres, certains �v�nements peuvent �tre g�n�r�s dans l'observateur d'�v�nements, mais bon dans les Threads ou dans les fonctions qui n'h�ritent pas de CModule c'est plus compliqu� -- sujet d'un autre post aussi � mon avis, besoin de me rafra�chir la m�moire)...
Si quelqu'un � d�j� utilis� SetTimer AUTREMENT QUE DANS UN ENVIRONNEMENT FENETRE (l� c'est facile, WM_TIMER et hop ! le tour est jou� ! Ici on est dans un SERVICE, c'est vraiment pas simple) peut-il me dire comment il a sign� la fonction qui sera ex�cut�e apr�s que se soient �coul�es les millisecondes imparties et me donner des infos sur ce qu'il s'est pass�, je comprends vraiment pas...
Voici les �l�ments utiles:
Notez que j'ai plus trop l'habitude des casts et consors en c++ depuis mes premiers pas dans Java, j'en ai plus eu trop besoin... il doit y avoir un soucis mais je vois pas o�... c'est �a le hic... m�me si mon truc marche, j'aimerais savoir pourquoi j'ai d� �crire moi-m�me (boh, �a m'a pris deux minutes, mais bon) une fonction de type SetTimer() ??Prototype de la fonction cens�e �tre ex�cut�e:
void MaFonction(void);
Note: j'ai tout essay� en ce qui concerne la d�claration de cette fonction de mani�re � ce que �a passe au niveau du compilateur, il y a bien eu quelques soucis pour "typer" correctement le fameux 4eme param�tre de la fonction SetTimer(...). M�me d'�crire une fonction du type CelleCi(HWND,UINT,UINT,TIMERPROC)... mais c'�tait tout aussi vide de r�sultat...
...
UINT numTimer=SetTimer(NULL,0,TempsImparti*1000,(TIMERPROC)&MaFonction);
...
void MaFonction(void)
{
......choses int�ressantes......}
Merci de voir cela avec moi... je suis ouvert � toutes discussions
Jah guidance and itection, everytime !
Partager