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

 C++ Discussion :

erreur de compil sur typedef : comprends pas


Sujet :

C++

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut erreur de compil sur typedef : comprends pas
    Bonjour,

    1) le compilo gueule sur l'utilisation de typedef que je ne comprends pas
    2) j'ai une déclaration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    typedef struct WSAData {
            WORD                    wVersion;
            WORD                    wHighVersion;
            char                    szDescription[WSADESCRIPTION_LEN+1];
            char                    szSystemStatus[WSASYS_STATUS_LEN+1];
            unsigned short          iMaxSockets;
            unsigned short          iMaxUdpDg;
            char FAR *              lpVendorInfo;
    #endif
    } WSADATA, FAR * LPWSADATA;
    ensuite, dans une fonction, je fais
    et le compilo me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "error C2275: 'WSADATA' : utilisation non conforme de ce type comme expression"
    j'utilise Microsoft Visual Studio 2008

    Merci de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Juin 2009
    Messages : 33
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    typedef struct WSAData {
    WORD wVersion;
    WORD wHighVersion;
    char szDescription[WSADESCRIPTION_LEN+1];
    char szSystemStatus[WSASYS_STATUS_LEN+1];
    unsigned short iMaxSockets;
    unsigned short iMaxUdpDg;
    char FAR * lpVendorInfo;
    #endif
    } WSADATA, FAR * LPWSADATA;
    Pourquoi as-tu mis un #endif ? (je ne vois pas le #ifdef/#ifndef/... correspondant.)

    Voilà tout

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    En C++, il n'est pas nécessaire d'utiliser typedef lorsque l'on défini un type utilisateur.

    Pour répondre à ta question, il y a de fortes chances pour que le problème vienne de la positio de la directive preprocesseur #endif, qui, sauf erreur, ferme le garde anti inclusion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #ifndef FICHIER_H
    #define FICJIER_H
    et qui devrait se trouver... en dehors de ta structure
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Nouveau candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut le problème est résolu
    Bonjour,

    1) le #endif vient du copier-coller, et n'existe pas le code.
    2) néanmoins, j'ai résolu l'erreur : l'erreur de compil vient du fait que :

    WSADATA wsa dans ma fonction, est placé après une instruction !!!

    j'ai déplacé toutes les déclarations de variables au début de la fonction, avant les instructions : ==> et ça marche

    Ceci étant dit, je ne comprends toujours pas pourquoi, étant donné que c'est un compilo C++

    Merci de votre réponse

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Citation Envoyé par antana Voir le message
    Ceci étant dit, je ne comprends toujours pas pourquoi, étant donné que c'est un compilo C++
    Un problème de ';' ? Si tu montres le code, peut être que la réponse sera plus facile à trouver

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Citation Envoyé par antana Voir le message
    Ceci étant dit, je ne comprends toujours pas pourquoi, étant donné que c'est un compilo C++
    Ce n'est pas le "type de compilo" qui importe, mais l'extension du fichier. (ou des réglages en ligne de commande qui peuvent prendre la priorité).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/11/2012, 20h54
  2. Erreur de compilation sur gaim-vv avec gstrreamer
    Par ZiMo dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 30/12/2005, 10h41
  3. Erreur à la compile sur VC++ 6
    Par norwy dans le forum Développement
    Réponses: 1
    Dernier message: 10/11/2005, 13h51
  4. Delphi 7 update 1 - Erreur de compil sur SQLExpr
    Par RamDevTeam dans le forum Bases de données
    Réponses: 14
    Dernier message: 02/11/2005, 17h44
  5. Réponses: 9
    Dernier message: 31/05/2005, 13h38

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