Thread et parametre char

Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 - 7 sept. 2003 à 21:34
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 - 8 sept. 2003 à 12:37
Salut,
juste une petite question, ya-t-il un moyen simple de mettre une variable caractere en parametre d'un thread ?
J'arrive a la faire avec un int ou DWORD mais la, avec des cast, la variable récupéré contient n'importe quoi... Comment faire ?

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 sept. 2003 à 22:07
ben c'est idem, tu passes le pointeur, que soit char* void* ou trucmuche* du moment que c'est un 32 bits referençant une adresse c'est nickel.
BruNews, ciao...
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
7 sept. 2003 à 22:22
peut tu me donné un petit exemple s'il te plait ? parceque la je dois dire que je sèche...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 sept. 2003 à 22:35
envoie moi ton morceau critique qu'on trouve le chmol.
Exemple preliminaire:
char szbuff[24];
ta func thread
DWORD WINAPI monthread(LPVOID lpParam)
{
SetWindowText(GetFocus(), (char*) lpParam):
return 0;
}

// on lance
strcpy(szbuff, "youpi");
hthread = CreateThread(0,0,monthread, (DWORD*) szbuff, 0, &thrdID);

BruNews, ciao...
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
7 sept. 2003 à 22:55
Ben le pb c'est que c'est exactement ce que j'ai fait...
Mais j'ai trouvé la solution, ca me parait très bizarre, mais je doit faire ca pour envoyé la variable Pseudo:
char param[256]; strcpy(param, Pseudo);
CreateThread(NULL, 0, MonThread, (DWORD*)param, 0, &threadID);

Pourtant Pseudo est définit comme ca : char Pseudo[256]; et bien que je l'ai manipulé avec un pointeur, je ne vois pas pourquoi elle ne passe pas.... enfin bon, tant que ca marche, c'est pas bien grave, je te remercie quand même (^_^)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
8 sept. 2003 à 09:30
Tu passes à ton thread une variable locale à une fonction ? Dans ce cas attention à la destruction de la variable à la sortie de la fonction et au fait que l'adresse passée au thread ne désigne plus rien du tout de valide.

Kaid - kaid.fr.st
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 sept. 2003 à 10:18
Je ne pense pas que Anacr0x soit bourricot, il aura bien vu dans l'exemple que char szbuff[24] est declare hors des fonctions.
Kaid, ne desesperons pas du genre humain.
BruNews, ciao...
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
8 sept. 2003 à 12:37
Nan c bon, la variable n'était pas locale, mais jme suis rendu compte après que je fesait une manipulation dessus totalement foireuse avant de la passé (j'avais fait ça un peu trop vite...), pas étonnant qu'elle ne passe pas bien (^_^)
Avec le strcpy, ca marchait puisque je la copiait avant cette manip
Voila en fait ct une erreur de ma part, dsl d'avoir demandé de l'aide pour quelque chose qui n'en avait pas besoin
@+
0
Rejoignez-nous