Bonjuour,
J'ai une dll (code non manag�e) que j'ai cr�e dans laquelle j'ai une fonction qui est d�clar�e de la sorte:
Puis, dans mon application Winform en c++, j'ai un fichier dans lequel je l'importe de la mani�re suivante:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 extern "C" { __declspec(dllexport) int SetValue ( int iValue ); }
Malheureusement, lors de l'ex�cution l'appel de la fonction SetValue depuis l'application qui charge la dll provoque une erreur sur PInvoke disant que ma fonction a d�d�quilibr� ma pile et fournissant l'explication suivante:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 [DllImport("test.dll")] int SetValue ( int iValue );
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.
Je dois avouer que malgr� mes recherches, je ne comprends pas ce qui se passe ni quoi faire pour corriger. Quelqu'un pourrait-il m'aider?
Merci!
Partager