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

TreCool0 Messages postés 16 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 15 avril 2009 - 6 avril 2009 à 11:41
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 6 avril 2009 à 14:04
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!
A voir également:

1 réponse

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
6 avril 2009 à 14:04
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.
0
Rejoignez-nous