Bonjour à tous,
J'ai un problème assez étrange lors de l'appel d'une fonction d'une dll.
En effet, je dois passer à celle ci un string, qui est modifié par ladite fonction. Jusqu'ici, tout va bien. Le problème survient lorsque je souhaite réutiliser ce string.
Voici la définition de la fonction en question :
Je l'appelle de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <DllImport("maDll.dll")> _ Public Shared Function TransformString(<MarshalAs(UnmanagedType.LPWStr)> ByRef ioString As [String]) As RETURN_CODE End Function
Rien de bien compliqué jusqu'ici. Là où ça se gâte, c'est lorsque je souhaite consulter le contenu de ma string.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 dim sString as String = "" dim oMsg as RETURN_CODE = DEFAULT_RETURN_CODE oMsg = TransformString(sString) Me.TextBox1.text = sString MsgBox(sString)
En effet, l'affichage de la textbox m'affiche seulement le premier caractère de la string! Encore plus fort, la message box m'affiche le contenu complet de la string ! Et, clou du spectacle, lorsque j'utilise l'espion express de l'EDI, celui ci m'indique que ma string ne contient aucun caractère ! D'ailleurs, un test en utilisant la fonction ToCharArray me retourne un tableau de 0 éléments...
Bref, j'en perds mon latin. Suis je victime de possession démoniaque, ou y a t'il une raison à ce comportement ?
Si quelqu'un a une idée, je lui en serait reconnaissant.
D'avance merci
Partager