cs_SylMat
Messages postés92Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention 3 mai 2007
-
12 déc. 2006 à 17:16
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 2016
-
13 déc. 2006 à 10:38
Bonjour à tous,
J'aimerai savoir comment je dois déclarer une fonction,issue d'une dll EVC++, qui retourne un tableau de chaine...
J'ai fait ca dans mon code vb.net
<DllImport("maDLL", EntryPoint:="maFonction", CallingConvention:=CallingConvention.Winapi)> _
Shared Function maFonction(ByVal var As String) As String()
End Function
Au runtime j'ai une jolie Unsupported exception.
J'avoue être un peu (pas mal, vive le J2EE qui m'a ramoli le cerveau) rouillé en C++ donc le problème vient peut être du prototype de la fonction exportée en fait...
Quelqu'un aurait soit un exemple soit un lien svp?
Merci d'avance
Sylvain
Admin de pdafr. sylmat@codes-sources.com
"Tant que mon patron croit qu'il me paye beaucoup, je lui fais croire que je travaille beaucoup"
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 13 déc. 2006 à 10:38
salut,
à priori, je dirais que ca renvoie un pointeur vers un tableau de chaines et pas un tableau de chaine...
je dirais donc un truc dans le genre de :
<DllImport("maDLL", EntryPoint:="maFonction", CallingConvention:=CallingConvention.Winapi)> _
Shared Function maFonction(ByVal var As String) As IntPtr
End Function
puis utilisation de l'objet Marshal et de sa méthode statique Copy ou autres...
ensuite tout dépend de la manière dont tu connais la taille du tableau renvoyé, comment tu l'utilise...
sinon, il serait intéressant d'avoir la signature C++ de la méthode