Bonjour a tous,
Je suis actuellement confronte a un probleme de fonction callback.
J utilise une librairie pour controler un peripherique. Dans celle-ci, il y a une fonction dont la declaration est la suivante :
Je cherche a utiliser la fonction SubscribeNotifications dans mon programme c++ mais je ne connais pas grand chose aux fonctions callback.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 typedef void (WINAPI *NOTIFICATION_CALLBACK) (HANDLE cyDevice, DWORD dwNotify, DWORD dwUser); // cyDevice = Handle to device triggering callback // dwNotify = Reason for callback // dwUser = User-defined parameter // Subscribe for event notifications such as ready-to-read // Only one subscriber callback per device // Returns OK or an error code DWORD SubscribeNotifications ( HANDLE cyDevice, // Handle obtained from Open() NOTIFICATION_CALLBACK callback, // Pointer-to-function for callback DWORD dwUser // User-defined parameter to pass to callback );
Pour cela, je cree une fonction telle que :
Et par la suite, dans mon main, je fais appel a ma fonction Subscribe_notifications :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void WINAPI OnUser(HANDLE hanReader, DWORD dwNotify, DWORD dwUser) { // mon code }
Logiquement, a chaque evenement sur mon peripherique, la fonction OnUser devrait s executer (en tout cas c est mon but) mais ce n est pas le cas.. Je ne sais pas si c est moi qui ne comprends pas grand chose aux callback (c est bien possible) mais j aimerais bien savoir que faire pour corriger mon erreur svp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 NOTIFICATION_CALLBACK callback; callback = (NOTIFICATION_CALLBACK)OnUser; DWORD dwUser; cout << "Error Code sub notif " << SubscribeNotifications(hanReader,callback,dwUser) << endl;
Merci d avance.
Partager