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 :

[C++ CLI / C#] Passage de paramètres


Sujet :

C++/CLI

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [C++ CLI / C#] Passage de paramètres
    Bonjour

    Je suis novice avec l'interop entre C++CLI et C#.
    Mon problème est le suivant:

    Je développe en parallèle une dll en C++CLI et un programme qui se sert de cette dll en C#. Un peu compliqué, mais j'ai récupéré des sources cpp et voila pourquoi je souhaite en faire une dll C++ CLI avec juste une classe managée comme interface de la dll.

    Bref ma question est comment passer un tableau de double par exemple à ma fonction C++ CLI.

    Dans mon programme en C#, je souhaite avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double[] tableau = new double [10];
    objet.fonction(tableau)
    Comment doit être le prototype de ma fonction C++CLI pour l'utilisation d'un tableau en paramètre?

    Merci par avance pour votre aide

    --
    Sébastien

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Bonjour,

    Je pense à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TypeDeRetour MaClasse::fonction(array< double > ^tab)
    {
    ...
    }
    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
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Donc on ne peut pas passez directement un tableau de float directement utilisable en C++ ...

    Car ma classe c++ cli ne fait que reprendre les méthode publique de ma classe c++ pour être utilisables en c#. Est ce une bonne approche?

    Et donc ma fonction c++ attend en paramètre un float[], je doit donc créer un fonction dans ma classe C++CLI qui prend en paramètre un array<float>, qui transforme ce 'array' en float* et qui appelle la fonction en C++ avec le nouveau paramètre?

    Je voudrais juste savoir si cette approche est bonne car je découvre vraiment le c++cli et cela pourrait m'éviter de réecrire quelques bonnes pages de code

    Merci

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En C++/CLI, tu dois pouvoir utiliser un pin_ptr<> pour pouvoir accéder directement au tableau managé sans avoir à le copier, je pense.

    D'ailleurs, je pense que ton approche globale est bonne: Il est courant d'utiliser le C++/CLI pour interfacer de l'ancien code non-managé avec .Net...
    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.

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci de ta réponse Médinoc

    Je testerai ca dès que le projet C++ compilera

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

Discussions similaires

  1. [Forms]Passage de paramètre entre Forms et Reports
    Par jack554 dans le forum Reports
    Réponses: 4
    Dernier message: 30/03/2004, 13h58
  2. probleme lors du passage de paramètre
    Par maxmj dans le forum ASP
    Réponses: 4
    Dernier message: 18/11/2003, 00h15
  3. [XSL] Passage de paramètres à un template
    Par pantin dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/06/2003, 13h28
  4. passage de paramètres
    Par pram dans le forum XMLRAD
    Réponses: 5
    Dernier message: 18/02/2003, 17h28
  5. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 19h47

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