[Langage] pointeur de fonction membre
je voudrais passer une fonction membre à une subrooutine 'C', j'ai donc fait cela:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
#ifdef __cplusplus
extern "C" {
#endif
extern int my_func_C_(char *,void(*My_class_Cpp::func)(int *,int *,int *,double *));
#ifdef __cplusplus
} // "C"
#endif
class My_class_Cpp
{
void Une_fonction();
void my_func_membre(int *n,int *ngood,int *nstop,double *l);
...
};
void My_cass_Cpp::Une_fonction()
{
my_func_C_("toto",&My_class_Cpp::my_func_membre);
} |
Ca compile et ca link, ca fonctionne mais les variable n, ngood..., valent n'importe quoi.
La question que je me pose est que dans le code 'C' le prototype de la fonction est déclarée comme suit:
Code:
1 2
|
int my_func_C_(char *,void(*func)(int *,int *,int *,double *)); |
et ne connait donc pas My_class
enfin, si j'ai été assez clair et si vous avez une idée pour réaliser ca, merci d'avance