Probleme Argument void* d'une fonction

Résolu
Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012 - 31 janv. 2005 à 14:10
Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012 - 1 févr. 2005 à 18:10
Bonjour,
Pour info je travaille sous Linux en C++

j'ai une fonction definie comme ca :


int ServeurSocket::emmetreSocket(void* trame, int taille)
{
 return sendto(Service, trame, taille, 0, (struct sockaddr*)&SockClient, sizeof(SockClient));
}



J'appelle la fonction comme ceci :


SS->emmetreSocket(&(Essai)E1, sizeof(E1));



Et la Structure Essai est declare comme ca :


typedef struct
{
  AnsiString S1;
  int I1;
}Essai;



Mon probleme :
J'aimerais envoyer par le Reseau la structure Essai mais je ne veux pas que la fonction se limite juste a une structure particuliere alors c'est pour ca que j'ai mis un void* que je caste en appelant la fonction.
Bien entendu quand je le teste ca ne marche pas.

Si quelqu'un aurait une idée merci de m'en faire part.

Merci. Et bon Code a tous. ++ Nexus

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.

4 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
31 janv. 2005 à 15:27
SS->emmetreSocket(&E1, sizeof(E1));

=> le type void* permet de passer un pointeur sur n'importe quoi (un char, un int, une structure...)

par contre dans ta structure il y a une variable du type AnsiString. Si cette varaiable contient un pointeur (ce que je suppose vu que c'est une string). l'envoyer telle quelle va poser un problème car seul le pointeur sera envoyé et pas le contenu de la chaîne.
3
Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012
31 janv. 2005 à 16:12
Merci de ta reponse, effectivement l'AnsiString posait problème en l'enlevant le int dans la structure a été très bien recu par le client.
L'AnsiString était la juste pour un test. Dans la vrai structure j'utilise juste des int des floats et des doubles.

Merci. ++ Nexus

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
1 févr. 2005 à 10:50
AnsiString , c'est pas du Borland ça?

et tu as un compilo de Borland sous X?

ça fait ptet newbe comme qu mais je n'ai pas encore exploré cette voie

en tt cas; il me semble que les STL fonctionne tres bien sous linux.

pourquoi utiliser ces types spécifique à un éditeur?

Magicalement.
0
Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012
1 févr. 2005 à 18:10
Salut Nono effectivement AnsiStirng c'est du Borland et plus precisement pour Linux c'ets du Kylix




Merci. ++ Nexus

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
0
Rejoignez-nous