PB pour m'abonner à un évènement levé par une DLL

Signaler
Messages postés
6
Date d'inscription
vendredi 30 mai 2003
Statut
Membre
Dernière intervention
6 septembre 2011
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
Bonjour,

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 ?

Merci

5 réponses

Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Je pense que :

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
Messages postés
6
Date d'inscription
vendredi 30 mai 2003
Statut
Membre
Dernière intervention
6 septembre 2011

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
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

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
Messages postés
6
Date d'inscription
vendredi 30 mai 2003
Statut
Membre
Dernière intervention
6 septembre 2011

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()

Je pense que je ne met pas le bonne adresse dans
ADP.fireRequest = AddressOf Request
, meis laquelle mettre ?
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

La ligne :
adp.fireRequest += this.Request;

Se traduit par un AddHandler en VB.

Mon site