Bonjour à tous,
Je dispose d'une dll codé en C.
Celle-ci contient une fonction qui est censé me retourner un tableau de char.
Voici comment se présent la fonction dans le .h de la dll :
Voici maintenant, ce que j'ai fais dans mon application c# :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 unsigned short Exchange (unsigned short usNumID, char* pcResp, unsigned long* pulSizeResp)
Voici comment je l'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [DllImport("cardw32.dll"] public static extern ushort Exchange(ushort usNumID, string pcResp, ref ulong pulSizeResp);
Malheureusement pour moi ca ne fonctionne pas, je récupère bien une longueur (pulSizeResp), mais rien dans ma string.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 static void Main(string[] args) { ulong status = 0; ulong sizeResp = 256; ushort num = 3; StringBuilder respStr2 = new StringBuilder((int)sizeResp); status = Exchange(num, respStr, ref sizeResp); Console.WriteLine("Echange - status = " + status.ToString() + " sizeResp = " + sizeResp.ToString()); Console.WriteLine("String = " + respStr);
Je n'ai pas réussi à lui passer un char[] (marche pas avec "ref")
J'ai déja cherché sur le site, mais rien de concluant chez moi ... (stringBuilder NOK, liens pages Morpheus NOK)
Si quelqu'un à une idée je suis prenneur.
Merci d'avance.
Partager