2013-10-16 3 views
1

J'ai une DLL C++, que je ne peux pas modifier et je dois l'utiliser avec mon code C#. J'ai donc créé une classe C++/CLI comme wrapper pour la classe C++ originale.Comment passer un Int ** entre C++ et C#

Il existe une méthode avec un argument int ** et je ne sais pas comment le passer au code C++/CLI, puis au code C#.

Voici la définition de la méthode native C++ qui retourne le nombre d'éléments dans le cadre:

int Precursor::GetFrame(int **frame, int id) 

Pourriez-vous me aider? Merci

Répondre

1

Lors de l'importation de la DLL C++, vous devez marshaler le pointeur vers le pointeur int **frame en tant que ref IntPtr ppFrame. Votre fonction CLI utilisera IntPtr% frame.

+0

J'ai trouvé une autre façon, en fait, j'ai utilisé la même définition pour mon C++/méthode CLI et dans la méthode C# J'ai créé un int * temporaire que je passe à la méthode et puis j'ai copié chaque valeur à un int [] qui a été passé par réf. – diditexas