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++Builder Discussion :

Erreur d'include entre Jvcl et Excel_2k


Sujet :

C++Builder

  1. #1
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut Erreur d'include entre Jvcl et Excel_2k
    Voila,

    J'ai une fichie principale qui contient dans le .cpp l'include:

    une fiche secondaire qui contient des composants de la JVCL ( JvDBGrid,..)

    si je fais un include de cette fiche dans ma fiche principale,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include "Excel_2k.h"
    #include "MaFicheJvcl.h"
    J'ai des erreurs du type :
    • [C++ Error] JvJVCLUtils.hpp(307): E2015 Ambiguity between 'Dialogs' and 'Excel_2k:ialogs'
      [C++ Error] JvJVCLUtils.hpp(393): E2015 Ambiguity between 'Menus' and 'Excel_2k::Menus'
      [C++ Error] JvJVCLUtils.hpp(430): E2015 Ambiguity between 'Windows' and 'Excel_2k::Windows'
      [C++ Error] FrmMain.cpp(3443): E2015 Ambiguity between '_fastcall TDateTime::operator double() const' and '_fastcall TDateTime::operator int() const'
      etc...


    Alors que si j'inverse seulement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include "MaFicheJvcl.h"
    #include "Excel_2k.h"
    Alors ça compile normalement ...

    Pourquoi l'ordre des include est il si important?

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Je pense que comme Excel_2k et Jvcl déclarent des objets Menu, Dialog, etc. , au moment où Jvcl il les utilise, le compilateur n'arrive pas à déterminer quel objet utiliser.

    Si tu fais les includes en commençant par Jvcl, le compilateur ne connaît que le Menu/Dialog/Window de Jvcl et ne risque pas de se tromper. La déclaration, ensuite, des mêmes noms dans Excel ne le trouble pas puisqu'il n'y fait pas appel ou utilise une notation sans ambiguité:

    Menu --> ambigu
    Excel_2k::Menu --> pas ambigu

  3. #3
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut
    Ah Ok !
    merci Patrick.

    Je crois que j'ai compris.
    Ca voudrais dire que la jvcl ne precise pas bien explitement quels Menu,Dialog,etc..elle utlise, comme le fais excel_2k;

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

Discussions similaires

  1. Erreur pages include
    Par mullger dans le forum Langage
    Réponses: 6
    Dernier message: 31/10/2006, 11h16
  2. Erreur de link entre dlls
    Par Spartan03 dans le forum C++
    Réponses: 1
    Dernier message: 16/08/2006, 19h48
  3. [VB6] Erreur 62 - L'entrée dépasse la fin de fichier
    Par Vesta dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/08/2006, 12h32
  4. Erreur E2015 : Anbiguité entre ...
    Par LoicH dans le forum C++Builder
    Réponses: 13
    Dernier message: 15/02/2005, 14h42
  5. DTS erreur pendant transfert entre 2 bases
    Par jc2 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/11/2004, 15h31

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