Bonjour à tous,
je ne débute en c#, et j'ai besoin juste de recompiler un ancien programme en c#. Mon prog fait appel a une dll ecrite en c, ci dessous les signatures de la fonction, tout concorde et pourtant il me met l'erreur PInvokeStackImbalance ??
merci par avance pour votre aide
code c :
extern __declspec(dllexport) int calculer(double *var1, double var2);
code c# :
1 2 3 4 5 6 7
| public double var1;
public double var2;
[DllImport("malib.dll";, EntryPoint="calculer",CallingConvention=0,CharSet=CharSet.Auto)]
public static extern int calculer(ref double var1, double var2);
public bool calculerVar() {
int retour = DLL.calculer (ref var1,var2);
} |
Message d'erreur :
PInvokeStackImbalance a été détecté
Message: Un appel à la fonction PInvoke 'MonAppli!malib.DLL::calculerVar' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.
Partager