je voudrais passer une fonction membre à une subrooutine 'C', j'ai donc fait cela:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
et ne connait donc pas My_class
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int my_func_C_(char *,void(*func)(int *,int *,int *,double *));
enfin, si j'ai été assez clair et si vous avez une idée pour réaliser ca, merci d'avance
Partager