Socket : envoyer des structures [C++ Builder] - Programmation
Marsh Posté le 29-03-2002 à 13:05:36
? normalement ca devrait passer avec un cast
genre
typedef struct
{
int truc;
float machin;
}SMaStruct;
SMaStruct toto;
...
SendBuf((void *)&toto..)
je connais po builder ni SendBuf, mais je ne vois pas de raison qui font que tu ne pourrais pas recaster un ptr vers structure en void *
Marsh Posté le 29-03-2002 à 14:36:18
arf c'est ce que j'ai fait mais au lieu de me faire une struct je me suis entraine avec un int
Mais ca marche pas
Marsh Posté le 29-03-2002 à 20:33:21
- Il met quoi comme erreur ?
- Tu peux mettre un bout de code ?
Marsh Posté le 29-03-2002 à 23:49:27
une manière simple C d'utiliser SendText et de passer des TStringList (StringList.Text)
Mais je te conseille d'utiliser quand même SendBuff... (expérience perso qui C pas super bien passé avec SendText)
Marsh Posté le 29-03-2002 à 23:51:01
chrisbk a écrit a écrit : ? normalement ca devrait passer avec un cast SendBuf((void *)&toto..) |
Vient d'où le & ?
[jfdsdjhfuetppo]--Message édité par [SDF]Poire--[/jfdsdjhfuetppo]
Marsh Posté le 30-03-2002 à 00:08:25
Bhen pour donner l'adresse de la zone mémoire...
Marsh Posté le 30-03-2002 à 00:15:20
antp a écrit a écrit : Bhen pour donner l'adresse de la zone mémoire... |
beh y a pas besoin la vu que toto C 1 structure.
SendBuf((void *)toto..) je pense....
(fatigué alors soyez indulgents )
Marsh Posté le 30-03-2002 à 01:16:28
Heu possible... je suis fatigué aussi
Marsh Posté le 30-03-2002 à 02:28:38
[SDF]Poire a écrit a écrit : beh y a pas besoin la vu que toto C 1 structure. SendBuf((void *)toto..) je pense.... (fatigué alors soyez indulgents ) |
nan
ca va etre le drame si tu fais ca
observons !
si jamais j'ai
typedef struct
{
int a:
int b;
}SBidule
et
SBidule c;
c.a = 20;
c.b = 30;
SnedBuff((void *)toto..)
bon
1) la on demande au compilo de caster un truc qui fait 8o en un truc qui en fait 4 . y risque de gueuler
2) mettons il le fait . que va t'il chopper ? non pas l'adresse de la structure (qui s'obtient par &c), mais les 4 premiers octet de la structure (soit a, soit 20)
et il va faire sa copie a partir de l'adresse 20
drame en perspective
Marsh Posté le 30-03-2002 à 11:05:18
Le compilateur va écrire a écrit : Access violation. Read at address 00000014. |
Message classique de Builder/Delphi
(14 = 20 en hexa)
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 29-03-2002 à 11:57:44
Voila j'me suis fait un p'tit chat tranquille, j'arrive a envoyer du texte, mais je sais pas comment envoyer des structures (avec pseudo, numero client, etc...).
J'arrive pas a utiliser la fonction SendBuf.
Elle prend un void * en parametre. Mais je veux pas mettre un void * (marche pas avec un cast )
merci.
---------------
Super.