cs_valoue
Messages postés72Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention13 mai 2011
-
13 juil. 2004 à 15:08
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
15 juil. 2004 à 16:29
Bonjour,
j'essaie d'utiliser dans mon projet la fonction pthread_create mais g des pb a la compil et je ne sais pas pourkoi.
Je developpe une classe C++ (donc pas de main dans cette classe).
Voici un extrait de mon code:
int recoitTrame(char * trame){
st.text = (char *)malloc(1024);
//creation d'un processus fils
pthread_t threadfils_id;
if (pthread_create(&threadfils_id,NULL,reception,(void *)&st) ==-1){
cout<<"pb lors de la création du thread\n";
}
int *resultat;
pthread_join(threadfils_id,(void **)&resultat);
cout<<"en sortie = "<<st.text<<"\n";
strcpy(trame,st.text);
return 0;
}
void *reception (void *st){
return NULL;
}
L'erreur qui m'est dit à la compil (g++ sous Linux) est:
"no matches converting function 'reception' to type void*(*)(void*)"
Cette erreur est dite sur la ligne qui fait l'appel pthread_create.
Je ne comprends pas où est mon erreur, g essayé de faire excatement comme dans des codes que g trouvé.
Auriez vous une idée ?????
Merci
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 14 juil. 2004 à 02:40
y a t'il un prototype de la fct reception avant son utilisation dans create_thread ?
s'il n'y en a pas, le compilo prendra par défaut une fct qui retourne un int (et pas void* comme voulu).
cs_valoue
Messages postés72Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention13 mai 2011 15 juil. 2004 à 09:11
Merci de ta réponse.
Ben en fait g essayé de mettre la fonction "reception" avant la fonction qui contient l'apple de pthread_create, mais g toujours le même erreur.
J'ai l'impression d'avoir un pb dans l'appel, parce que l'erreur est:
"no matches converting function 'reception' to type void*(*)(void*)"
"candidates are: void* NomClasse::reception(void*)"
J'ai l'impression d'avoir un pb d'appel de la fonction "reception" dans pthread_create, une histoire de pointeur, ou un machin comme ça.
ça ne dit rien a personne ??
Valoue
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 15 juil. 2004 à 16:28
si la fct 'reception' fait parti d'une classe, elle doit être déclaré 'static' sinon cela ne marchera pas. si tu as besoin d'avoir accès aux membre de la classe, tu peux passer un pointeur 'this' comme param de la fct.
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 15 juil. 2004 à 16:29
si la fct 'reception' fait parti d'une classe, elle doit être déclaré 'static' sinon cela ne marchera pas. si tu as besoin d'avoir accès aux membre de la classe, tu peux passer un pointeur 'this' comme param de la fct.