Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1493 connectés 

 


Dernière réponse
Sujet : Attention, question qui fait mal au crâne ! C++, API Win32
Guz Salut,
 
Toutes les fonctions de callback travaillent comme ca.
Le plus simple est de definir une classe qui va contenir toutes tes infos, et de passer dans ton LPARAM un pointeur vers un objet de ce type.
 
Sinon je dis de faire une classe car si ton projet est un projet MFC tu peux utiliser les deux macros DECLARE_DYNANIC et IMPLEMENT_DYNAMIC ce qui permet d'utiliser la fonction IsKindOf sur ton pointeur pour pouvoir verifier la validite de celui ci dans ta callback.
 
Voila.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Guz Salut,
 
Toutes les fonctions de callback travaillent comme ca.
Le plus simple est de definir une classe qui va contenir toutes tes infos, et de passer dans ton LPARAM un pointeur vers un objet de ce type.
 
Sinon je dis de faire une classe car si ton projet est un projet MFC tu peux utiliser les deux macros DECLARE_DYNANIC et IMPLEMENT_DYNAMIC ce qui permet d'utiliser la fonction IsKindOf sur ton pointeur pour pouvoir verifier la validite de celui ci dans ta callback.
 
Voila.
H4dd3R Typiquement ce genre de fct (callback d'un timer ou multithreading non?) prend un void* en parametre, histoire de passer n'importe quoi..
C moche car c pas oriente objet du tout, mais c pratique..
 
Alors te fais pas de soucis, fait une classe pour passer tes parametres et passe l'adresse sur ton instance de la classe c tt.. :)

 

[edit]--Message édité par H4dd3R--[/edit]

HelloWorld je suis d'accord ...
essayons d'imaginer comment fonctionne cette fonction qui appelle une autre fonction : elle empile le parametre et l'appelle.
ne sachant pas quelle est la taille du parametre, elle ne peut empiler qu'un pointeur vers quelque chose, ou alors un nombre 32 bit (=> un pointeur ...)
 
donc documente toi sur le LPARAM qu'attend la fonction callback passee en parametre.
minusplus ce que je voulais dire c'est que même celles qui sont pas de callback travaillent (toujours d'aprés mes souvenirs => donc pas sur...) avec simplement un paramètre : un pointeur sur une structure. Bon, pour les callback c'est un peu obligé...
BENB

minusplus a écrit a écrit :

ben d'aprés mes vagues souvenirs des API win, c'est comme ça que fonctionnent beaucoup des fonctions. une structure + un pointeur dessus pour passer en paramètre. ça ne me semble pas choquant, quess t'en pense.




API vin ou autres c'est comme ca que marchent les callback...
Resolution numerique/Motif/WIN etc...
 
ce qui est casse pieds c'est quand il n'y a pas le void*...

Carbon_14 Si le CallBack ne prévoit que deux arguments, je suis pas certain (suis pas spécialiste) qu'il y ait moyen.
 
Si on a des variables globales, on peut les utiliser/gérer dans le CallBack à part des paramètres passés lors de l'appel. C'est tout ce que j'ai trouvé dans ce genre de contexte (ça marche ainsi pour moi, pauvre amateur (galérien parfois !)).
minusplus :lol:  
 
ben pas grand chose mais on bosse aussi sur des stations UNIX alors pour dév sur mon PC je me suis mis un linux !
 
et pi c'est pas trop une question de dév (passke les codes, si ils sont à peu prés propres, ils compileront sous win), c'est plutôt l'OS que je préfère. Bon, faut dire que pour le moment, je fais que de la console... (pas besoin d'api) (je me suis d'ailleurs jamais penché sur les libs et les toolkits de linux alors je peux pas te dire si c'est mieux que les api win)
El_gringo en essayeant d'être vraiement objectif (en oubliant tous les "fuck Bill Gates !" que t'as lu, entendu, ou même prononcé sans trop savoir pourquoi), tu trouves quoi de mieux à la prog sous Linux ?
minusplus linux
El_gringo ouais, j'imagine que t'as raison, que c la seule solution...
 
Tes vagues souvenirs de l'API !? t'utilises quoi maintenant !?
minusplus ben d'aprés mes vagues souvenirs des API win, c'est comme ça que fonctionnent beaucoup des fonctions. une structure + un pointeur dessus pour passer en paramètre. ça ne me semble pas choquant, quess t'en pense.
El_gringo t'inquiètes, je apparement, t'as compris ma question, mais donc à ton avis, on est obligé de créer une structure pour ça !?
minusplus je suis pas sur d'avoir bien compris ta question mais je tente : en passant un pointeur sur une structure.
El_gringo j'utilise une fonction de l'API qui prend 2 paramètres: une pointeur de fonction, et un LPARAM pour pouvoir passer des paramètres à cette "CALLBACK fonction"
 
ma question est : Comment faire pour passer plusieurs paramètres à cette fonction !?

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR