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

MFC Discussion :

[Win32-VC7]WaitableTimer


Sujet :

MFC

  1. #1
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut [Win32-VC7]WaitableTimer
    bonjour,

    j'ai un pb avec Visual Studio.NET (en fait j'utilise VC++7) J'aimerais tester le petit bout de code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include "stdafx.h"
    #include <windows.h>
    using namespace std;
     
    int _tmain(int argc, _TCHAR* argv[])
    {
        HANDLE ht = CreateWaitableTimer(NULL, false, "MonTimer");
     
        LARGE_INTEGER time; 
        time.QuadPart = -20000000; // 20 000 000 * 100ns = 2s
        SetWaitableTimer(ht, &time, 1000, NULL, NULL, false);
     
        while(1)
        {
            WaitForSingleObject(ht, INFINITE);
            cout << "timer\n";
        }
        return 0;
    }
    et j'ai le messages d'erreur suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    d:\user\jmv\visualC++\essai_timer\essai_timer.cpp(13): error C3861: 'CreateWaitableTimer': identificateur introuvable, même avec une recherche qui dépend de l'argument
    d:\user\jmv\visualC++\essai_timer\essai_timer.cpp(15): error C3861: 'SetWaitableTimer': identificateur introuvable, même avec une recherche qui dépend de l'argument
    Faut-il inclure un autre fichier .h, ou ajouter au projet une librairie ???

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    deja je mettrais windows.h dans stdafx.h .
    que contient stdafx.h ?
    apres (ça m'etonnerait que ça cause un pb mais bon)
    au lieu de mettre false met FALSE : respecte les signatures les apis32 ne connaissent pas le type bool ...

  3. #3
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    j'ai fait ce que tu m'as dit ... idem

    le fichier stdafx.h contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #pragma once
    #include <iostream>
    #include <tchar.h>
    #include <windows.h>

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    re,
    apres un rapide essai avec vc7 je confirme .
    ça doit etre encore une pb avec les includes ou les directives de compilation,
    j'ai refait le meme projet en win32 avec support des MFC et la pas de pb ça compile / link.

  5. #5
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    bizarre parce que pour l'instant je n'ai eu aucun pb avec CreateProcess(), CreateThread(), etc... dans mes applications console win32

    si quelqu'un a une idée, je suis preneur

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    re,
    la solution :
    tu rajoutes #include <afx.h> dans stdafx.h a la place de windows.h
    dans les proprietes de compil : generation de code :
    tu selectionnes pour bibliotheque run time : multi thread /mtd pour debug ou /mt pour release.

  7. #7
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    ok,
    j'essaye ça demain matin parce que là je peux pas je te tiens au courant.

    Merci beacoup

  8. #8
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    salut farscape,

    J'ai essayé ce que tu m'as dit, je n'avais plus d'erreur de compilation mais le linker me sortait 2 erreurs.

    En fait, j'ai relus à fond l'aide sur CreateWaitableTimer() et j'ai trouvé qu'il fallait que je définisse la constante _WIN32_WINNT:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define _WIN32_WINNT 0x500 // pour win2000
    et maintenant ça marche en incluant <windows.h> (pas besoin de <afx.h>) et avec la librairie runtime /mld.

    au final voici le code, essai_timer.cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // essai_timer.cpp : définit le point d'entrée pour l'application console.
    //
     
    #include "stdafx.h"
    using namespace std;
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	HANDLE ht = CreateWaitableTimer(NULL, FALSE, "MonTimer");
    	LARGE_INTEGER time; time.QuadPart = -20000000; // 20 000 000 * 100ns = 2s
    	SetWaitableTimer(ht, &time, 1000, 0, 0, false);
    	while(1)
    	{
    		WaitForSingleObject(ht, INFINITE);
    		cout << "timer\n";
    	}
    	return 0;
    }
    et stdafx.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // stdafx.h : Fichier Include pour les fichiers Include système standard,
    // ou les fichiers Include spécifiques aux projets qui sont utilisés fréquemment,
    // et sont rarement modifiés
    //
     
    #pragma once
     
    #define _WIN32_WINNT 0x0500
     
    #include <iostream>
    #include <tchar.h>
     
    // TODO : faites référence ici aux en-têtes supplémentaires nécessaires au programme
    #include <windows.h>
    Ca m'apprendra à ne pas lire la doc à fond
    En tout cas , je te remercie car tes réponses m'ont quand même mis sur la piste
    A++
    jmv

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. [Kylix] kylix3 ----> win32
    Par blue dans le forum EDI
    Réponses: 3
    Dernier message: 28/01/2003, 11h27
  3. gcc et win32
    Par MatRem dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 16/01/2003, 12h22
  4. [API win32] Récupérer le répertoire d'un profile
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h38
  5. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34

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