IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

[Service] Soucis avec les Timers -- temporisateurs


Sujet :

Visual C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [Service] Soucis avec les Timers -- temporisateurs
    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:

    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...
    ...
    }
    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() ??

    Merci de voir cela avec moi... je suis ouvert à toutes discussions

    Jah guidance and itection, everytime !

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Hum... mea culpa, c'ets pas CModule mais bien CServiceModule, hihi ^^

Discussions similaires

  1. Soucis avec les Graphiques dans les états
    Par Chococrocq dans le forum IHM
    Réponses: 27
    Dernier message: 04/01/2006, 19h03
  2. petit soucis avec les listes
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2005, 10h08
  3. [PIC] Pause avec les timers
    Par Ekinoks dans le forum Assembleur
    Réponses: 1
    Dernier message: 07/05/2005, 23h04
  4. [Débutant]Problème avec les timers
    Par mickael777 dans le forum MFC
    Réponses: 1
    Dernier message: 11/04/2005, 11h00
  5. Réponses: 7
    Dernier message: 05/10/2004, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo