Bonjour,
Je dois dois faire le lien entre une dll C++ et C#
La fonction
[DllImport(DLL_NAME, CharSet = CharSet.Ansi, EntryPoint = "MvaSensorNew")]
private static extern IntPtr MvaSensorNew();
retourne un pointeur sur l'objet
La fonction
[DllImport(DLL_NAME, EntryPoint = "?isButtonPushed@MvaSensor@@QAE_NH@Z",
CharSet = CharSet.Ansi, CallingConvention = CallingConvention.ThisCall)]
private static extern bool isButtonPushed(IntPtr _iPtr, int _iNumCapteur);
doit me retourner l'état d'enfoncement d'un bouton d'un matériel.
Or le retour de la fonction est toujours true
- bien que cette dll fonctionne correctement avec un programme C++ classique
- bien que le pointeur soit correct (d'autre procédure de cette dll fonctionne)
Voilà le nom non décoré de la fonction
bool MvaSensor::isButtonPushed(int)
Voilà le nom décoré
?isButtonPushed@MvaSensor@@QAE_NH@Z
Il y a t il une erreur de ma part lors de l'appel à cette fonction (exp : bool b=isButtonPushed(iptrHandle,10]) ou lors de sa création pour C#
Merci de vos réponses.
RMI