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

Visual C++ Discussion :

C++ / Interfaces / Implementation


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Par défaut C++ / Interfaces / Implementation
    Bonjour,

    Je suis un peu perdu .
    En gros, le context de mon projet consiste à avoir un projet .NET avec des forms dans lequel j'ai un Viewer Opengl.
    Ce projet est linké avec une dll qui export des classes C++ standard (crée avec le joli wizard de Visual .NET 2003), ces classes ont pour but d'être visualisées dans le viewer opengl.

    Mon objectif est d'arriver à implementer une interface (IDraw) sur mes differents objets pour qu'ils puissent être vu dans le viewer.

    En gros, ca donne ça :
    CCar o----- IDraw
    CHomme o--IDraw

    et le viewer : IDraw * ptab[]

    Simplement, je n'arrive pas à definir correctement mon interface, ni à l'implémenté sur mon objet. Sachant que je voudrai faire dérivé mes interfaces de IUnknown pour pouvoir utiliser le QueryInterface.
    J'ai fais pas mal de recherche sur le net, et j'ai essayé plusieurs solution mais sans succès.

    J'ai réussi à faire des interfaces propres en utilisant les "ATL simple object" mais je n'arrive pas a implémenter les interfaces sur mes classes C++.

    Comment dois-je procéder, et y a t il une solution plus efficace.

    Merci pour votre aide.

  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
    Si tu pars sur ATL, je te conseille le forum Visual C++.
    En effet, les classes implémentant les interfaces COM (IUnknown etc.) n'ont plus grand-chose se commun avec le C++ standard, surtout si tu utilises ATL.

    Surtout que mettre en branle ATL pour ça est peut-être une usine à gaz. Es-tu sûr d'avoir vraiment besoin d'un mécanisme comme QueryInterface(), avec comptage de références et tout ?

    Un simple héritage multiple et quelques dynamic_cast<> ne suffisent-ils pas ? (à supposer qu'eux-mêmes soient nécessaires, ce qui n'est déjà pas sûr...)


    Je te conseille de rester ici pour discuter de la conception, il n'est pas sûr que tu aies besoin de savoir dynamiquement si un objet implémente une interface donnée. Si cela s'avère nécessaire, voir si on peut se contenter de dynamic_cast<>, ou à la rigueur d'une parodie de QueryInterface(), au pire utiliser ATL...
    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 averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Par défaut
    En fait j'avais pensé à un moment faire hérité mes classe de la même classe (Cmere )mère qui contiendrai une méthode virtuel Draw par exemple. mais cela me paraissait trop restrictif si je veux ajouter d'autres comportements sur mon objet (par exemple une méthode d'edit pour faire afficher le panel associé a l'objet), même si c'est vrai que je peut faire de l'héritage multiple.

    Est ce que tu aurai par exemple simple de l'utilisation de dynamic_cast<>.

    Merci

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

Discussions similaires

  1. INTERFACE / implementation
    Par Matt27 dans le forum Langage
    Réponses: 11
    Dernier message: 02/03/2012, 16h36
  2. template, "interface", implementation
    Par line86 dans le forum Langage
    Réponses: 8
    Dernier message: 03/04/2009, 20h52
  3. [interface] implementation de ICloneable
    Par ZaaN dans le forum C#
    Réponses: 12
    Dernier message: 20/12/2007, 16h25
  4. probleme interface implements
    Par inquire dans le forum Langage
    Réponses: 3
    Dernier message: 07/11/2007, 19h24
  5. Implementation et Interface
    Par Bleys dans le forum Débuter
    Réponses: 5
    Dernier message: 21/06/2004, 14h00

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