Combinaison de types managés/non managés non valide

Signaler
Messages postés
16
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
15 avril 2009
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonjour,

Je travaille actuellement sur un projet en Visual C++ avec des WindowsForm sous Visual C++ 2008 Express. J'ai crée une DLL, avec un fichier de définition, dont l'une des fonctions renvoie un array de String. Dans mon programme principal, j'appelle cette DLL de la façon suivante :

[DllImport("MaDLL")]
extern "C" array<String ^> ^ MaFonction();

puis,  j'appelle ma fonction de la façon suivante :

array<String ^> ^ elements = MaFonction();

Mais lorsque je lance mon programme, il me renvoie l'exception suivante :

Impossible de marshaler 'return value' : Combinaison de types managés/non managés non valide

J'ai lu sur quelques forums qu'il fallait utiliser IntPtr, mais je ne comprends pas très bien comment faire.
Quelqu'un peut-il m'aider?

Merci d'avance!

1 réponse

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,

Tape pinvoke sous google. En général, c'est sous ce nom là que l'on appelle la technique d'accès à du natif depuis du .net. Nombreux tutoriaux.