Passage d'une structure à un thread

cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011 - 18 juin 2004 à 08:47
cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011 - 18 juin 2004 à 09:31
Bonjour,

Voilà, j'aurais une petite question.
Je travaille sous VC++(.net) et je créé un thread depuis une procédure.

J'ai donc une méthode
/* Emission d'une trame */
void envoiTrame(const char *trame){
//st est de type maStructure definit plusbas
st = (LPTHREAD_PARAMS) malloc(sizeof(THREAD_PARAMS));
strcpy(st->text, trame);
st->sock = s;
hthread=CreateThread(NULL, 0, LPTHREAD_START_ROUTINE) &envoi, (DWORD*)st, 0, &threadID);
}

cette méthode créé donc un thread qui lance (lors de sa création) la méthode "envoi" à laquelle le veux passer une structure:
typedef struct socketEtText{
SOCKET sock;
char* text;
} maStruct, *maStructure;

Dans ma méthode "envoi", j'ai donc:
DWORD WINAPI envoi(LPVOID sote){
char Message_Emis[255];
//le pb commence là...
LPTHREAD_PARAMS st = (LPTHREAD_PARAMS) sote;
st->...
}

En fait mon pb est dans les deux dernieres lignes de code. Je ne sais pas comment récupérer la structure que je reçois en paramètre.
Je voudrais accéder aux champs pour les utiliser.

Pourriez vous m'aider s'il vous plait ?????!!!
Merci bcp bcp d'avance !

Valoue

2 réponses

cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011
18 juin 2004 à 09:00
J'ai oublié de préciser, que la structure (le typedef) est definit dans le .h du prog, elle devrait normalement etre connue dans la méthode "envoi".

De plus, une petite precision:
Mon pb vient en fait des pointeur ou je ne sais koi.
Qd je fais:
LPTHREAD_PARAMS st = (LPTHREAD_PARAMS) sote;
st->...
Le Ctrl-Espace (au clavier) ne me sort rien apres la fleche (ie pas de completion automatique). Ca veut dire que il y a un pb dans le type de la récupération de la structure passée.

Si vous ne comprenez pas, dites le moi.

Encore merci !

Valoue
0
cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011
18 juin 2004 à 09:31
G la reponse, regardez

http://www.cppfrance.com/forum.v2.aspx?ID=244758

Valoue
0
Rejoignez-nous