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 :

Gestion des vectors pour wrapper C#


Sujet :

C++/CLI

  1. #1
    Membre �clair� Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par d�faut Gestion des vectors pour wrapper C#
    Bonjour,

    Je d�couvre le monde du C++/CLI.
    Le but de mon projet est d'utilis� une dll C++ native dans une application C#.
    Je suis donc pench� sur la r�alisation d'un Wrapper en C++/CLI.
    J'ai potass� un peu de doc ( merci � nico-pyright(c) au passage pour son excellent tutoriel).

    J'ai quelques zones d'ombres, principalement sur la classe std::vector.

    1. Une fonction int addData(int id,vector<float> data ) d�fini dans ma dll C++.
    Comment d�finir cette fonction dans ma dll C++/CLI? Dois-je utiliser un Array, ou ArryList ou un it�rateur?

    2. Une fonction vector<Class2> GetClass2(int id) d�fini dans ma dll C++. Comment la traduire ? Dois-je wrapper la classe "Class2"?

    Je vous remercie de votre aide,
    @+

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    Bonjour,

    1.
    Surement pas it�rateur.

    Dans tous les cas, tu vas devoir convertir (copier) de l'un vers l'autre lors de l'appel.
    Le plus g�n�rique, ce sera d'accepter un System::Collections::Generic::IEnumerable<float>^, mais bosser � la place avec une ICollection<float>^ peut �tre plus performant (parce que la collection peut te r�v�ler sa propre taille)

    2. Normalement oui, tu vas devoir wrapper Class2, avec une value class ou une ref class selon ce que tu cherches � faire (donn�es brutes ou code). Le type de retour le plus proche du vector<> serait List<>^ (dans System::Collections::Generic aussi)
    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 �clair� Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par d�faut
    Merci de ta r�ponse, je vais me pencher sur les ICollection et le principe de value class que je ne connais pas.

    Dans ma classe "Class2", il y a une re-d�finition d'op�rateur. Est ce que j'ai besoin de wrapper cela? O� puis je cr�er ma classe C++/CLI sans ses re-d�finitons?

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    �a d�pend si tu veux que le code C# ait acc�s � des red�finitions d'op�rateurs sur la classe que le code C++/CLI exposera...
    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.

Discussions similaires

  1. Gestion des erreurs pour runtime
    Par cbleas dans le forum Runtime
    R�ponses: 1
    Dernier message: 09/12/2006, 14h18
  2. R�ponses: 6
    Dernier message: 09/06/2006, 12h17
  3. Question des gestions des genres pour livre, BD...
    Par Oberown dans le forum Sch�ma
    R�ponses: 3
    Dernier message: 16/09/2004, 16h58
  4. Gestion des modifications pour un enregistrement
    Par Pascal Jankowski dans le forum Bases de donn�es
    R�ponses: 3
    Dernier message: 10/03/2004, 14h09

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