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 :

Question sur Héritage


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 56
    Points
    56
    Par défaut Question sur Héritage
    Bonjour tout le monde.

    Je débute dans le C++/CLI et je me pose une question.
    J'ai toute une librairie développée en C++ que j'aimerais
    bien entendu reutiliser dans un programme C#.
    Je voulais savoir si il était possible qu'une classe
    managée puisse hériter d'une classe non managée.
    Et si oui.. surtout comment.

    Le but principal étant l'appel d'une fonction de cette objet
    que j'ai besoin de surcharger pour modifier son fonctionnement.

    merci d'avance

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    non c'est pas possible, il te faut créer un wrapper (en C++/CLI par exemple) et après tu pourras faire une classe c# qui héritera du wrapper

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    Merci de votre réponse rapide .

    Je ne comprend pas comment rediriger l'appel de la fonction que je veux
    surcharger, sachant que l'appel est fait par l'API elle même et qu'elle a besoin d'un info de retour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Code de l'API :
     
    class A
    {
      void Method1();
      void Method2(char *pcPath);
    }
     
    Method1 appelle Method2 pour récupérer un nom de fichier.
    Method2 est la méthode que je souhaiterais surcharger.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Code du wrapper:
     
    class AWrap
    {
     A* m_pA;
    ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Code Managé:
     
    class B
    {
    void Method2(char *pcpath);
    }
    Comment faire pour que la Method2 de mon code managé soit appelé ?
    Je ne vois pas du tout.
    En fait, si qq'un pourrait un peu plus m'éclairer sur le sujet, j'suis vraiment bien perdu.
    Merci encore pour tout.

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu devrais peut-etre commencer par regarder mes tutoriels sur l'interoperabilité partie 1 et partie 2

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    En ayant regarder tes tutoriaux,
    je n'ai malheureusement pas trouvé mon bonheur,
    quoi qu'il en soit, ils sont très bien et permettent
    d'éclaircir sur pas mal de chose.
    Pour être plus précis dans mon problème,
    c'est que ma classe non managée a une fonction
    callback dont se sert d'autres méthodes en interne.

    Je voudrais donc pouvoir intercepter ces appels
    pour faire l'opération que je souhaite.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    J'ai finalement réussi à hériter de ma classe, évidemment
    dans une classe non managée... mais je m'arrange ensuite.
    Donc merci encore à ceux qui m'ont aidé

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    si c'est résolu, n'oublie pas le bouton résolu

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

Discussions similaires

  1. Questions sur héritage
    Par Mornor dans le forum Général Java
    Réponses: 24
    Dernier message: 12/11/2013, 16h28
  2. 2 questions sur héritage et require() distant
    Par ctrl+z dans le forum Langage
    Réponses: 8
    Dernier message: 06/01/2009, 08h42
  3. Question sur héritage
    Par Linkin dans le forum Delphi
    Réponses: 4
    Dernier message: 09/11/2006, 13h58
  4. [Héritage] Question sur le polymorphisme
    Par nikhil dans le forum C++
    Réponses: 7
    Dernier message: 28/12/2005, 20h33
  5. Réponses: 2
    Dernier message: 04/12/2005, 21h10

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