amel227
Messages postés19Date d'inscriptionjeudi 10 mai 2007StatutMembreDernière intervention12 août 2009
-
30 mai 2008 à 15:23
marouanebj
Messages postés1Date d'inscriptionlundi 2 octobre 2006StatutMembreDernière intervention 2 février 2009
-
2 févr. 2009 à 13:33
Bonjour à tous
j'ai une dll en vc++,quand j'utilise l'une de ses fonctions en c# une exception se lance à la compilation à cause de la non comptabilité entre les types de variables en vc++ et c#.
Ma fonction retourne un tableau de double,je sais pas à qoi correspond un tableau de double en c#.
Si vous avez un idée, s'il vous plait m'aider.
Merci
bonne journée
A voir également:
C# pointers and fixed size buffers may only be used in an unsafe context
Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 30 mai 2008 à 16:28
Pas de souci ^^
Pense a la regle 2 :p
Les trois lois de Codes-Sources :
1) Tu lis et respecte le reglement
2) Tu pense a valider si une reponse apportée a ton probleme t'a aidé
3) Si tu ne respecte pas les 2 premières .......................... TU SORS !!!!!!
Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 30 mai 2008 à 15:51
Pour avoir un tableau de Double tu peux passer par une List<Double> qui est une collection generique ( il faut donc ajouter using System.Collections.Generic; )
Les trois lois de Codes-Sources :
1) Tu lis et respecte le reglement
2) Tu pense a valider si une reponse apportée a ton probleme t'a aidé
3) Si tu ne respecte pas les 2 premières .......................... TU SORS !!!!!!
amel227
Messages postés19Date d'inscriptionjeudi 10 mai 2007StatutMembreDernière intervention12 août 2009 30 mai 2008 à 16:36
A l'exécution j'ai ce genre d'exceptio:MarshalDirectiveException was unhandled
"Cannot marshal 'return value': Generic types cannot be marshaled."
ceci dans la ligne de commande quand j'appelle la fonction de ma dll vc++
Vous avez une idée sur ce genre d'exception?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 30 mai 2008 à 19:30
Salut, tu utilises l'attribut DllImport pour appeller une fonction de ta dll, c'est bien ça ? Dans ce cas c'est impossible de marshaller le tableau dans une liste générique, le tableau renvoyé est un pointeur, il faut utiliser le type C# IntPtr puis utiliser Marshal.Copy ou le code unsafe pour récupéré les valeurs du tableau. Il faut aussi détruire le tableau une fois que tu as terminé.