J'ai une DLL qui communique avec un appareil. Cet appareil envoie des info à la DLL. Lorsque le DLL reçoit ces info elle lève un événement.
Je n'arrive pas à récupérer cet événement dans mon code. La doc de la DLL est très succincte. Je dois jouer au devinettes !
L'espace de nom CAdapter défini un objet Adp
Cet objet à un évenement AdpEventHandler
J'ai écris le code suivant
Private WithEvents ADP As Cadapter.Adp
Si je m'abonne à l'évènement avec le code suivant j'ai l'erreur : AdpEventHandler' n'est pas un événement de 'Cadapter.Adp'. Pourtant Visual Studio me l'autocomplète bien.
AddHandler ADP.AdpEventHandler, AddressOf Request
Même chose avec
Private Sub Request(ByVal sender As Object, ByVal e As AdpEvent) Handles adp.AdpEventHandler
Savez vous comment je pourrais "capter" l'évènement émit par la DLL ?
AdpEventHandler n'est pas l'événement, mais le Delegate pour gérer l'événement.
Revérifie la documentation.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site
Merci pour ta réponse,
mais je la doc est très succinct sur cette DLL. Comment je peut connecter le nom de l’évènement ?
L’auto-complétion ne prospose rien de plus
Peux tu faire un screenshot de tous les membres de cette classe (vu de l'explorateur d'objet) et mettre l'image ici (hébergement à faire grâce à Google) ?
Ce sera très utile pour t'aider.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site
j'ai trouvé un exemple en C#
Il y a un membre "firequest" utilisé comme suit :
adp.fireRequest += this.Request;
J'ai traduit ca par :
ADP.fireRequest = AddressOf Request
Ça réagit, lorsque l'appareil générer l'evenement cela fait une erreur dans mon programme.
Le débogueur ne s’arrête pas sur l’erreur, mais elle est bien affichée, je pense qu'elle se produit dans la dll.
L'erreur est
L'exception System.IndexOutOfRangeException n'a pas été gérée
Message="L'index se trouve en dehors des limites du tableau."
Source="Cadapter"
StackTrace:
à Cadapter.AdpThreadUDP.run()
à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Threading.ThreadHelper.ThreadStart()