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++/CLI Discussion :

IDispatch is ambigous


Sujet :

C++/CLI

  1. #1
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 100
    Par défaut IDispatch is ambigous
    Bonjour la communauté.

    Voila, j'ai un probleme d'héritage COM.

    J'ai une classe qui hérite de deux interfaces qui héritent chacune de l'interface IDispatch.

    Quand je fais un QueryInterface pour avoir l'interface IDispatch, j'ai la fameuse erreur "IDispach is ambiguous".

    Comment peut on résoudre ce probleme ?
    Merci.
    F.

  2. #2
    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
    Tu dois retourner explicitement l'une des deux Dispatch, en faisant deux casts successifs qui sont individuellement non-ambigus.
    En code non-managé, ça donnerait ça:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    *ppv = static_cast<IDispatch*>(static_cast<IInterfaceDualeA*>(this));

    Si tu utilises un fichier d'IDL pour faire une Type Library, tu pourras marquer l'interface en question comme étant la dispatch par défaut de l'objet, il me semble.
    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 éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 100
    Par défaut
    Merci, ca marche !!!


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

Discussions similaires

  1. [META] Choix ambigüs
    Par Hibou57 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/08/2006, 13h06
  2. [UML] Modélisation ambigüe
    Par djflex68 dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 19/03/2006, 12h43
  3. [Interfaces] IDispatch et DispInterfaces
    Par Clorish dans le forum Langage
    Réponses: 2
    Dernier message: 19/12/2005, 09h57
  4. Qu'est ce que le type IDISPATCH ?
    Par bob1980 dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 09/12/2005, 12h44
  5. [Com] Interface IDispatch.Invoke
    Par Laurent Dardenne dans le forum Windows
    Réponses: 4
    Dernier message: 15/06/2004, 22h51

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