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 :

Convertir un tableau de structure C en un tableau de classe


Sujet :

C++/CLI

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Convertir un tableau de structure C en un tableau de classe
    Bonjour,

    Je veux utiliser cette fonction C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FANN_EXTERNAL void FANN_API fann_get_connection_array(struct fann *ann,
        struct fann_connection *connections);
    Je l'ai convertie en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static extern void fann_get_connection_array(IntPtr ann, IntPtr connections);
    et j'ai créé la classe fann_connection.

    avant l'appel, j'alloue bien la mémoire telle que précisé dans la documentation
    The connections array must be preallocated to at least
    sizeof(struct fann_connection) * fann_get_total_connections() long.
    Donc, je récupère un IntPtr sur la zone contenant un tableau de structure fann_connection.

    Je ne sais pas comment convertir cela en tableau managé de classe fann_connection.
    Pour les types simples, j'utilise Marshal.Copy... mais là ?

    Merci de votre aide,
    Novick

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    J'ai trouvé la réponse, je la livre pour ceux qui comme moi rencontreraient ce cas :

    Il suffit de boucler en incrémentant le pointeur ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Marshal.PtrToStructure(buffer, cnx);
    buffer = new IntPtr(buffer.ToInt32() + Marshal.SizeOf(typeof(Connection)));

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

Discussions similaires

  1. Réponses: 31
    Dernier message: 06/04/2011, 17h44
  2. Tableau de structures en parametre d'une fonction
    Par -No Comment- dans le forum C
    Réponses: 19
    Dernier message: 29/03/2006, 15h00
  3. [VB6]Tri multi-colonnes sur tableau de structure
    Par ELGUEVEL dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/02/2006, 08h02
  4. Réponses: 9
    Dernier message: 13/02/2006, 08h39
  5. Trier un tableau de structures
    Par Yux dans le forum C
    Réponses: 7
    Dernier message: 05/11/2005, 17h28

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