Bonjour,
Je suis en train de connecter mon programme fait sous C# avec quelques libraires DLLs écrites en C++.
Tout de suite, j'obtiens sur l'écran l'erreur suivante: "PInvokeStackImbalance" quand je veux faire allusion à cette fonction de ma DLL:
short MaFonction (char* valueCharArray, long valueLong1, long valueLong2, short valueShort);
en utilisant:
[DllImport("MaDLL.dll", EntryPoint = "MaFonction")]
unsafe public static extern short MaFonction(char[] valueCharArray, long valueLong1, long valueLong2, short valueShort);
et
valeur = MaFonction (valueCharArray, valueLong1, valueLong2, valueShort);
Le message mentionne la signature PInvoke géreé et la signature de destin pas signée.
J'avais pensé à la "substitution" des pointeurs par des arrays comme la source du problème, mais j'ai d'autres byte* et short* avec lesquels j'ai joué d'une façon similaire et je n'ai pas reçu des messages du système.
En plus, je me suis aperçu que je reçois l'erreur seulement quand je suis avec la dépuration "Debug". Quand j'execute mon application hors le Visual Studio ou avec le "Release", tout marche bien!!
Tous les problèmes mentionnés ont eu lieu sous le Visual Studio 2005. Je ne les ai pas testés sous le Visual Studio 2003.
Quelques idées sur ce que je fais mal?
Merci par avance.
Partager