![]() |
| |||
| Bonjour, Question au sujet de la fonction Callback. J'utilise VC++8.0 J'ai une méthode qui demande une callback pour retourner des informations. Pour attacher la callbakc une seule fois tout va bien. Maintenant j'aimerais appeler plusieurs fois ma fonction avec sa callback. ex int __stdcall MyCallBack(void* context); int _stdcall MyCallBack(double valeur, void* context) { CMaClasse* pUser = (CMaClasse*) context; // j'utilise valeur pour des calculs ..... } void CMaClasse::Calcul(int numDevice) { .... StreamCalculValeur( ...., ....., &MyCallBack,this); } En fait je voudrais instancier plusieurs calculs, comme si j'avais un tableau de callback. Une callback par numDevice. En pseudo code int __stdcall MyCallBack(void* context) [MAX_DEVICE]; )et StreamCalculValeur( ...., ....., &MyCallBack[numDevice],this); )Je n'ai pas trouvé d'info sur le net peut être parce que je ne connais pas ce principe de fonctionnement des callback Merci par avance. Philippe |
| | ||||
| ||||
| |
| |||
| "gptvitsion" écrivit > Bonjour, > > Question au sujet de la fonction Callback. J'utilise VC++8.0 > > J'ai une méthode qui demande une callback pour retourner des informations. > Pour attacher la callbakc une seule fois tout va bien. > > Maintenant j'aimerais appeler plusieurs fois ma fonction avec sa callback. > > ex > int __stdcall MyCallBack(void* context); > > int _stdcall MyCallBack(double valeur, void* context) > { > CMaClasse* pUser = (CMaClasse*) context; > // j'utilise valeur pour des calculs > ..... > } > > > void CMaClasse::Calcul(int numDevice) > { > .... > StreamCalculValeur( ...., ....., &MyCallBack,this); > > } > En fait je voudrais instancier plusieurs calculs, comme si j'avais un > tableau de callback. Une callback par numDevice. > En pseudo code > int __stdcall MyCallBack(void* context) [MAX_DEVICE]; )> > et > > StreamCalculValeur( ...., ....., &MyCallBack[numDevice],this); )> > Je n'ai pas trouvé d'info sur le net peut être parce que je ne connais pas > ce principe de fonctionnement des callback > > Merci par avance. > Philippe > > Bonjour, Es-tu obligé d'utiliser des callback? Tu ne peux pas le faire en C++ objet? C'est vraiment plus simple à écrire. Rémi |
| |||
| Bonjour Rémi, Oui je n'ai pas vraiment le choix. J'utilise une librairie qui m'oblige à déclarer et utiliser une callback. J'ai chercher sur le net, sur MSDN et dans mes livres : rien trouvé. ça sent pas bon. Je vais voir avec l'éditeur de la librairie mais en GmbH c'est aussi les vacances ;-) Voici la méthode de la librairie SVGigE_RETURN StreamingChannel_create(StreamingChannel_handle *hStreamingChannel, CameraContainerClient_handle hCameraContainer, Camera_handle hCamera, int BufferCount, StreamCallback CallbackFunction,void *Context) déclaration préconisée de la callback : SVGigE_RETURN __stdcall ImageCallback(Image_handle hImage, void* Context); En fait chaque callback est appelée par le driver du périphérique. Dans cette callback je récupère une image que je peux traiter. Ayant plusieurs périphériques qui renvoient tous une image mais de façon asynchrone, je dois avoir une callback par périphérique. (Streaming étant le canal par lequel arrive l'image, un par périphérique). Pour l'instant j'ai bloqué mon appli à 4 périphériques (ce qui est nul). Je peux aller jusqu'à 256 périphériques en fonction de l'architecture. Je ne me vois pas avec un code où j'ai 256 déclarations et 256 méthodes etc : un peu moyen. Je continue à chercher. Merci pour ton aide. Philippe "Remi THOMAS" <remi***xtware.com> a écrit dans le message de news: uSsGYwL2HHA.3640***TK2MSFTNGP06.phx.gbl... > "gptvitsion" écrivit >> Bonjour, >> >> Question au sujet de la fonction Callback. J'utilise VC++8.0 >> >> J'ai une méthode qui demande une callback pour retourner des >> informations. >> Pour attacher la callbakc une seule fois tout va bien. >> >> Maintenant j'aimerais appeler plusieurs fois ma fonction avec sa >> callback. >> >> ex >> int __stdcall MyCallBack(void* context); >> >> int _stdcall MyCallBack(double valeur, void* context) >> { >> CMaClasse* pUser = (CMaClasse*) context; >> // j'utilise valeur pour des calculs >> ..... >> } >> >> >> void CMaClasse::Calcul(int numDevice) >> { >> .... >> StreamCalculValeur( ...., ....., &MyCallBack,this); >> >> } >> En fait je voudrais instancier plusieurs calculs, comme si j'avais un >> tableau de callback. Une callback par numDevice. >> En pseudo code >> int __stdcall MyCallBack(void* context) [MAX_DEVICE]; )>> >> et >> >> StreamCalculValeur( ...., ....., &MyCallBack[numDevice],this); )>> >> Je n'ai pas trouvé d'info sur le net peut être parce que je ne connais >> pas ce principe de fonctionnement des callback >> >> Merci par avance. >> Philippe >> >> > > Bonjour, > Es-tu obligé d'utiliser des callback? Tu ne peux pas le faire en C++ > objet? > C'est vraiment plus simple à écrire. > > Rémi > |
| |
| |
![]() |
| Tags: callback |
| Outils de la discussion | |
| Modes d'affichage | |
| |
| ||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| [WD11] pour info: bug thread et callback | patrice | Newsgroup fr.comp.developpement.agl.windev | 0 | 01/07/2008 13h31 |
| MX callback (was [LISTE DES VOTANTS] Modification des regles des votes concernant l'evolution de Usenet-fr) | F. Senault | Newsgroup fr.comp.mail.serveurs | 1 | 12/04/2007 09h16 |
| Config Callback console | fm@nowhere.invalid | Newsgroup fr.comp.peripheriques.modems | 0 | 21/01/2006 17h50 |