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 :

[VC7] Multithread et Critical section


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Par défaut [VC7] Multithread et Critical section
    Bonjour,

    Je suis en plein dans une application multi thread en VC 7.
    Je suis en train de programmer une critical section, et dans une optique d'utilisation de l'application sur une machine multiprocesseur, je cherche à initialiser la critical section par la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    InitializeCriticalSectionAndSpinCount()
    à la place de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    InitializeCriticalSection()
    Comme l'indique le MSDN dans un cas pareil.

    Quand je compile mon code j'ai une erreur C2065 : undecalered identifier sur la fonction InitializeCriticalSectionAndSpinCount alors que j'ai bien fait l'include de <windows.h>.

    Qu'ai-je oublié ?

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    2 possibilités:
    1 - ton SDK est trop vieux
    2 - il faut définir une version de Windows supérieure pour pouvoir l'utiliser
    fais clic droit sur cette fonction, aller à la déclaration. Si il ne la trouve pas -> cas 1, sinon, remonte un peu le code au dessus pour savoir quoi définir.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Par défaut
    Hello,

    Quand tu parles de la version de Windows, je suppose que tu veux parler de la version cible pour laquelle l'executable va être générer ?

    Mon SDK est celui fournis avec le Visual Studio .Net, est ce le bon ou non ?
    Je travaille sous Windows XP Pro avec un SP2.

    Merci

  4. #4
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Ton SDK n'est pas le plus récent, mais il devrait suffire.
    Si tu vas à la définition comme je te l'ait dit tu tombes sur:
    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
     
    #if (_WIN32_WINNT >= 0x0403)
    WINBASEAPI
    BOOL
    WINAPI
    InitializeCriticalSectionAndSpinCount(
        IN OUT LPCRITICAL_SECTION lpCriticalSection,
        IN DWORD dwSpinCount
        );
     
    WINBASEAPI
    DWORD
    WINAPI
    SetCriticalSectionSpinCount(
        IN OUT LPCRITICAL_SECTION lpCriticalSection,
        IN DWORD dwSpinCount
        );
    #endif
    donc rajoute "#define _WIN32_WINNT 0x0403" avant d'inclure <windows.h> et ça devrait compiler. D'ailleurs c'est expliqué à la fin de la doc sur InitializeCriticalSectionAndSpinCount.
    Pour la version de Windows oui. Cette fonction n'est pas dispo sous 95, et à partir du SP3 sous NT4.

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 39
    Par défaut
    faut inclure winbase.h

Discussions similaires

  1. Question Critical Section
    Par on2101 dans le forum Threads & Processus
    Réponses: 3
    Dernier message: 08/09/2009, 22h34
  2. Multithreading avec section critique ?
    Par Cokate dans le forum C#
    Réponses: 8
    Dernier message: 25/08/2008, 16h05
  3. [Multithread] Mutex versus Critical Section ?
    Par runn2 dans le forum Visual C++
    Réponses: 2
    Dernier message: 06/10/2006, 09h29
  4. Réponses: 2
    Dernier message: 03/05/2006, 17h07

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