Échange de tableaux

1. Du C# au C/C++

En C/C++, un tableau est un pointeur sur une zone mémoire contenant un nombre défini de "cases". Ces cases sont typées et leur nombre fixé lors de la création du tableau. On a des tableaux de bytes, d’int, de char, etc. En C#, le tableau est un objet contenant également une suite de données mais avec un jeu de méthodes et d’attributs pour les exploiter.

L’exemple qui suit (projet PInvoke04 à télécharger) va montrer comment un tableau peut passer du C# au C/C++.

Côté C/C++, il y a une fonction qui récupère un tableau et qui affiche son contenu sur la console. Le tableau est déclaré par un pointeur typé passé en premier paramètre et par la taille qui est passée en second paramètre. Ainsi, le côté "C" va pouvoir effectuer une itération dans ses limites.

#include "pch.h" 
 
__declspec(dllexport) void AfficheTableau(const int* pTab, size_t 
iTaille) 
{ 
    for (size_t i = 0; i < iTaille; i++) 
    { 
        printf("%d\r\n", *pTab++); 
    } 
} 

Côté C#, la fonction C est déclarée avec un premier paramètre de type tableau précédé par la directive [ InIn]. Cette directive [In] est le raccourci de [InAttribute] ; elle informe le Marshal que le tableau...

couv_RI4CAPOO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Traitement avec des chaînes de caractères
Suivant
Partage de structures