kulk2001
Messages postés8Date d'inscriptionlundi 20 septembre 2004StatutMembreDernière intervention 6 juin 2005
-
20 déc. 2004 à 17:13
xterminhate
Messages postés371Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention23 septembre 2009
-
23 déc. 2004 à 22:10
Bonjour, jaurai besoin d'aide sur les fonctions callback. Je ne sais pas du tout comment ca marche! Quelqu'un peut il me dire comment ca fonction marche et surtout comment les utiliser. Je vous remercie d'avance.
kulk
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 20 déc. 2004 à 17:27
Hé bien c'est simple : Windows te donne le prototype que la fonction doit avoir, tu as juste à suivre ses directives. Ensuite, tu appelles une fonction qui a besoin de cette calback (par exemple EnumWindows) en lui passant l'adresse de la fonction à utiliser, et pour chaque fenêtre présente sur le système, Windows appellera cette callback : c'est donc dans la callback que tu dois réaliser les traitements sur les données qu'on t'envoie (affichage dans une listbox, par exemple).
De nombreuses sources ici utilisent EnumWindows ou associées, tu peux les regarder : çà te donnera une bonne idée du fonctionnement de la chose.
kulk2001
Messages postés8Date d'inscriptionlundi 20 septembre 2004StatutMembreDernière intervention 6 juin 2005 20 déc. 2004 à 18:21
en faite ce que je veux faire! J'ai une application qui appelle une DLL et je souhaite que suite à un evenement perçue par la dll, j'appelle une fonction donné de l'application.
Conclusion je souhaite que ma dll appelle une fonction ; fonction contenue dans une application.
xterminhate
Messages postés371Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention23 septembre 2009 23 déc. 2004 à 13:11
Si c'est toi qui programme le mécanisme de callback, tu dois d'abord savoir si ta DLL appelle soit une fonction libre (en C ou C++) soit une fonction membre d'un objet (en C++). A partir de la plusieurs implémentations sont envisageables.
xterminhate
Messages postés371Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention23 septembre 2009 23 déc. 2004 à 22:10
Dans ce cas, tu dois être en mesure de fixer le type (de base) de l'objet dont tu appelles la ou les fonctions membres. { A ma connaisance, il n'est pas possible d'implémenter en C++ un mecanisme de callback de cette nature sans connaitre le type de l'objet appelé. }
Le plus simple consite à fournir à l'utilisateur de la DLL un objet de base dont les fonctions membres sont appellées lors de l'execution selon les evenments gérées par la DLL.