cs_valoue
Messages postés72Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention13 mai 2011
-
18 juin 2004 à 08:47
cs_valoue
Messages postés72Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention13 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.
cs_valoue
Messages postés72Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention13 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.