problème dllImport avec tableau de char[] en paramètre E/S
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 :
Code:
1 2 3
| unsigned short Exchange (unsigned short usNumID,
char* pcResp,
unsigned long* pulSizeResp) |
Voici maintenant, ce que j'ai fais dans mon application c# :
Code:
1 2 3 4
| [DllImport("cardw32.dll"]
public static extern ushort Exchange(ushort usNumID,
string pcResp,
ref ulong pulSizeResp); |
Voici comment je l'utilise :
Code:
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); |
Malheureusement pour moi ca ne fonctionne pas, je récupère bien une longueur (pulSizeResp), mais rien dans ma string.
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.