1. #1
    Membre du Club
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : novembre 2006
    Messages : 43
    Points : 43
    Points
    43

    Par défaut Problème de compilation avec "Class" comme nom de propriété

    Bonjour à tous.

    J'ai un probléme de compilation du code ci dessous:
    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
    procedure  GetListWmiClassesWithMethods(const NameSpace:String;Const List :TStrings);
    var
      objWMIService : OLEVariant;
      colItems      : OLEVariant;
      colItem       : OLEVariant;
      oEnum         : IEnumvariant;
      iValue        : LongWord;
    begin
      List.Clear;
      objWMIService := GetWMIObject(FHost,SNameSpace, FUsername, FPassword);
      colItems      := objWMIService.SubclassesOf();
      oEnum         := IUnknown(colItems._NewEnum) as IEnumVariant;
      while oEnum.Next(1, colItem, iValue) = 0 do
       if colItem.Methods_.Count>0 then
        List.Add(colItem.Path_.Class);
    end;
    Lazarus me dit : " Fatal: Syntax error, "identifier" expected but "CLASS" found ".
    C'est apparement du code Delphi, une adaptation du code VB suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set objSWbemService = GetObject("Winmgmts:root\default")
    Set objClass = objSWbemService.Get()
    objClass.Path_.Class = "NewClass"
    (Bon ça fait pas la même chose, mais c'est la preuve que Path_.Class existe bien...)

    Je pense que c'est le compilateur qui n'aime pas ".Class" mais comment contourner le problème ????

    Merci à vous :-)

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    janvier 2010
    Messages
    424
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2010
    Messages : 424
    Points : 958
    Points
    958

    Par défaut

    Bonjour

    On ne sait pas ce que fait ton code, et comme tu ne donnes pas les unités requises, il faudrait du temps pour le rendre compilable.

    List.Add attend un paramètre avec un identificateur de type String.
    Est-ce bien celui de Path_.Class ? Non, car Class est un mot réservé et ne peut être un identificateur.

    Au hasard, Est-ce que ClassName ne serait pas plus approprié ?
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  3. #3
    Membre confirmé

    Homme Profil pro
    Rédacteur technique (retraité)
    Inscrit en
    octobre 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique (retraité)

    Informations forums :
    Inscription : octobre 2009
    Messages : 115
    Points : 531
    Points
    531

    Par défaut

    Class est un mot réservé du langage Pascal, si tu est obligé de l'utiliser en tant qu'identificateur a-tu essayé ?


    Le signe & permet d' "escaper" un mot réservé.

  4. #4
    Membre du Club
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : novembre 2006
    Messages : 43
    Points : 43
    Points
    43

    Par défaut

    VOILA, c'est exactement la réponse a mon pb.
    Maintenant ça compile !
    MERCI BEAUCOUP DomDA91 :-)

    Citation Envoyé par DomDA91 Voir le message
    Class est un mot réservé du langage Pascal, si tu est obligé de l'utiliser en tant qu'identificateur a-tu essayé ?


    Le signe & permet d' "escaper" un mot réservé.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/06/2008, 19h23
  2. Problêmes de compilation sous linux
    Par Micky_du_57 dans le forum GLUT
    Réponses: 4
    Dernier message: 25/05/2007, 21h37
  3. [Flex / Bison] Problème de compilation sous Visual C++
    Par levalp dans le forum Générateurs de compilateur
    Réponses: 1
    Dernier message: 25/07/2006, 16h26
  4. problème de compilation sous XP/Centrino?
    Par RalphH dans le forum C++Builder
    Réponses: 19
    Dernier message: 23/10/2004, 17h12
  5. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 20h52

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