Bon, alors sous windows il est impossible qu'une fonction membre soit une callback car elle ne respecte pas la convention d'appel.
Sous win, la convention d'appel d'une call back est:
type_retour (__stdcall *)( int toto1, etc...)
donc le type de retour est celui que tu veux, les arguments sont ceux que tu veux...
Ce qu'il est possible de faire, et c'est ce que moi je fais, c'est que tu déclare une fonction externe ( qui a cette convention d'appel ) comme amie de la classe. Et tu passes à cette fonction un pointeur sur l'objet.
Un exemple pour être plus clair:
//header: toto.h
class toto
{
//....
int a;
private:
maFonction1(int i);
friend void __stdcall myCallBack( void * data, void * ptr );
};
// dans le fichier toto.cpp
void __stdcall myCallBack( void * data, void * ptr )
{
//....
(toto *) ptr->maFonction1( (toto *) ptr->a );
//....
}
// et dans ton programme principal:
typedef void (__stdcall * CALLBACK_TYPE) ( void * data, void * ptr )
void main(void)
{
toto * t;
t=new toto();
CALLBACK_TYPE callback = tu_te_debrouille_pour_recupperer_laddresse_de_la_callback;
callback( NULL, t);
}