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

Windows Discussion :

GCC ne reconnait pas certaines structures Windows, normale ?


Sujet :

Windows

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 256
    Points : 91
    Points
    91
    Par défaut GCC ne reconnait pas certaines structures Windows, normale ?
    Bonjour à tous,

    Pour utiliser la fonction NetUserEnum, il faut une structure Windows spéciale, et il y a le choix dans différentes structures en fonction du nombre/type de données que l'on veut récolter.
    Ca compile et ça marche avec les structures LPUSER_INFO_0 ou LPUSER_INFO_20, mais quand j'essai avec la structure LPUSER_INFO_23 il me dis qu'elle n'existe pas (`LPUSER_INFO_23' does not name a type) alors qu'elle est documentée sur MSDN.

    J'ai bien inclus la librairie qu'il faut, donc, est-ce que c'est GCC (MinGW) qui n'est pas au top pour les applications Windows ou est-ce que c'est moi qui ait oublié quelque chose ?

    Merci.
    A+, Pierre.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 572
    Points
    41 572
    Par défaut
    Les headers de MinGW ne sont pas au top.
    Ton type LPUSER_INFO_23 doit faire partie des structures qui manquent, aux cotés de l'interface IActiveDesktop...
    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.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 256
    Points : 91
    Points
    91
    Par défaut
    OK, merci, ça me rassure.

    Donc, maintenant, ça m'amène à un autre problème avec les directives de préprocesseur.
    Donc comme la structure n'est pas définie, je vais la définire mois même, mais pour que ça ne renvoit pas d'erreur si on compile sur un compilo qui l'a déjà définie, je veut mettre une condition.

    Donc pour tester si ce que je veut faire marche bien, j'ai essayé avec une structure déjà définie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifndef USER_INFO_0
    #error
    #endif
    Quand je compile, il me trouve l'erreur que je lui ais mis alors que la structure USER_INFO_0 existe puisque je m'en sert dans le programme et qu'elle est définis dans les headers du compilo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef struct _USER_INFO_0 { LPWSTR usri0_name; }USER_INFO_0,*PUSER_INFO_0,*LPUSER_INFO_0;
    J'ai essayé avec #ifndef _USER_INFO_0 mais ça ne marche pas non plus.

    Je viens de trouver pourquoi : les variables du préprocesseur n'ont pas de rapport avec le reste ...

    La condition que je veut faire est-elle fesable ?

    Merci.
    Pierre.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    Il faut regarder dans les headers M$ si des constantes préprocesseur sont associées aux typedefs (et/ou déclarations) qui t'intéressent ou pas (c'est parfois le cas).

    A défaut je ne crois pas que ce soit possible de savoir (au niveau préprocesseur en tout cas) si tel ou tel type a déjà été défini ou pas.
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 256
    Points : 91
    Points
    91
    Par défaut
    Rogobert, apparament non, j'ai recherché dans tous les fichier (à l'aide d'un logiciel) du répertoire de MingW une structure existante (USER_INFO_0), et il n'y avais qu'un seul endroit ou l'on pouvait la retrouver, c'était à la déclaration de la structure et il n'y avais pas l'aire d'y avoir de trucs en rapport autour ou dans le même fichier.

    Par contre, maintenant, mon code se compile sans erreurs ni warnings, mais la fonction NetUserEnum me renvoit une erreur : "ERROR_INVALID_LEVEL The system call level is not correct.".
    En l'ocurence, le niveau que j'ai mis est 23, niveau qui est proposé dans la doc MSDN de cette fonction ...

    Est-ce que ça pourait être du au faite que d'ajouter ce que j'ai ajouté n'est pas assez ?
    Si ça peut venir d'autre chose, venez me repondre sur le topic que j'ai créé pour cette erreur spv : par ici.

    Merci.
    Pierre.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/07/2011, 09h04
  2. GCC ne reconnait pas les bibliothéques
    Par diden138 dans le forum C
    Réponses: 2
    Dernier message: 18/11/2008, 23h21
  3. mon fichier xml n'a pas une structure normale
    Par nano8308 dans le forum Persistance des données
    Réponses: 0
    Dernier message: 25/10/2008, 23h31
  4. Installation : ne reconnait pas le CDROM
    Par SebCBien dans le forum Matériel
    Réponses: 4
    Dernier message: 08/08/2004, 17h10
  5. Réponses: 4
    Dernier message: 24/03/2004, 12h37

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