begin process at 2010 02 10 04:43:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Help (threads)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Help (threads)

mardi 29 octobre 2002 à 18:50:29 | Help (threads)

loicus

Bon, bhen voila.. j'essaye de faire un thread

j'aimerais ouvrir la fonctions LCD_BootScreen()
dans un thread, donc j'utilise cette fonction :

thboot= CreateThread(NULL, 0, LCD_BootScreen , NULL, NULL, NULL);

thboot est le handle de mon threads et j'ai mis tt le reste a null, pour les essais...

Mais, quand je compile avec VC++6 il me dis :

error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (void)' to 'unsigned long (__stdcall *)(void *)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Voila, je ne sais pas coment je dois ecrire l'argument 3 de la fonctions... donc, svp aider moi

merci d'avance
mardi 29 octobre 2002 à 19:20:18 | Re : Help (threads)

jcecchi

salut,

essayes :

thboot = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)LCD_BootScreen, NULL, NULL, NULL);



-------------------------------
Réponse au message :
-------------------------------

Bon, bhen voila.. j'essaye de faire un thread

j'aimerais ouvrir la fonctions LCD_BootScreen()
dans un thread, donc j'utilise cette fonction :

thboot= CreateThread(NULL, 0, LCD_BootScreen , NULL, NULL, NULL);

thboot est le handle de mon threads et j'ai mis tt le reste a null, pour les essais...

Mais, quand je compile avec VC++6 il me dis :

error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (void)' to 'unsigned long (__stdcall *)(void *)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Voila, je ne sais pas coment je dois ecrire l'argument 3 de la fonctions... donc, svp aider moi

merci d'avance
mercredi 30 octobre 2002 à 08:23:59 | Re : Help (threads)

Juke

Peut tu m'exxpliquer ce que c'est qu'un thread ?
j'aimerais à l'interieur d'un programme sous dos afficher l'heure en permanence independamment du reste du programme. dois je utiliser un thread ? ou alors comment faire ? est ce ansi ?



-------------------------------
Réponse au message :
-------------------------------

Bon, bhen voila.. j'essaye de faire un thread

j'aimerais ouvrir la fonctions LCD_BootScreen()
dans un thread, donc j'utilise cette fonction :

thboot= CreateThread(NULL, 0, LCD_BootScreen , NULL, NULL, NULL);

thboot est le handle de mon threads et j'ai mis tt le reste a null, pour les essais...

Mais, quand je compile avec VC++6 il me dis :

error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (void)' to 'unsigned long (__stdcall *)(void *)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Voila, je ne sais pas coment je dois ecrire l'argument 3 de la fonctions... donc, svp aider moi

merci d'avance
mercredi 30 octobre 2002 à 12:39:00 | Re : Help (threads)

llo

salut,
chaque programme est composé de 1 ou plusieurs threads. En fait, chacun va avoir sa propre vie même si des objets permettent de les synchroniser ou de partager des ressources.
l'lo


-------------------------------
Réponse au message :
-------------------------------

Peut tu m'exxpliquer ce que c'est qu'un thread ?
j'aimerais à l'interieur d'un programme sous dos afficher l'heure en permanence independamment du reste du programme. dois je utiliser un thread ? ou alors comment faire ? est ce ansi ?



-------------------------------
Réponse au message :
-------------------------------

Bon, bhen voila.. j'essaye de faire un thread

j'aimerais ouvrir la fonctions LCD_BootScreen()
dans un thread, donc j'utilise cette fonction :

thboot= CreateThread(NULL, 0, LCD_BootScreen , NULL, NULL, NULL);

thboot est le handle de mon threads et j'ai mis tt le reste a null, pour les essais...

Mais, quand je compile avec VC++6 il me dis :

error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (void)' to 'unsigned long (__stdcall *)(void *)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Voila, je ne sais pas coment je dois ecrire l'argument 3 de la fonctions... donc, svp aider moi

merci d'avance

jeudi 31 octobre 2002 à 00:29:10 | Re : Help (threads)

NiChaN


********The EaTo By NiChaN*********


Si C pour un test tu peut eventuelement essayer seulement :
thboot = CreateThread(NULL, 0, 0)
ou bien utiliser les classes du Winthread
exemples :
///////////////////////////////////////////
UINT fonctionRunA(LPVOID pParam);

pThreadB=AfxBeginThread(fonctionRunB,NULL,THREAD_PRIORITY_NORMAL,0,0,NULL);
/////////////////////////////////////////
Ca marche aussi bien !
***********The EaTo By NiChaN *********
jeudi 31 octobre 2002 à 08:46:44 | Re : Help (threads)

Juke

ok, et comment les utiliser brievement ? (sous dos)

merci de tes explications

Juke



-------------------------------
Réponse au message :
-------------------------------

salut,
chaque programme est composé de 1 ou plusieurs threads. En fait, chacun va avoir sa propre vie même si des objets permettent de les synchroniser ou de partager des ressources.
l'lo


-------------------------------
Réponse au message :
-------------------------------

Peut tu m'exxpliquer ce que c'est qu'un thread ?
j'aimerais à l'interieur d'un programme sous dos afficher l'heure en permanence independamment du reste du programme. dois je utiliser un thread ? ou alors comment faire ? est ce ansi ?



-------------------------------
Réponse au message :
-------------------------------

Bon, bhen voila.. j'essaye de faire un thread

j'aimerais ouvrir la fonctions LCD_BootScreen()
dans un thread, donc j'utilise cette fonction :

thboot= CreateThread(NULL, 0, LCD_BootScreen , NULL, NULL, NULL);

thboot est le handle de mon threads et j'ai mis tt le reste a null, pour les essais...

Mais, quand je compile avec VC++6 il me dis :

error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (void)' to 'unsigned long (__stdcall *)(void *)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Voila, je ne sais pas coment je dois ecrire l'argument 3 de la fonctions... donc, svp aider moi

merci d'avance


lundi 4 novembre 2002 à 14:45:31 | Re : Help (threads)

llo

salut,
apparemment mon message ne s'est pas enregistré.... bon je recommence!
voilà pour créer un thread (cf un autre message auquel j'ai répondu)
#include <process.h>
...
typedef unsigned (__stdcall *PTHREAD_START) (void *);
...
DWORD WINAPI ProcThread (LPVOID lpThreadParameter)
{
... // pour info lpvThreadParm ==> lpThreadParameter
}
...
DWORD dwThreadID;
HANDLE hThread = ((HANDLE)_beginthreadex(
(void *) (lpsa),
(unsigned) (cbStack),
(PTHREAD_START) (ProcThread),
(void *) (lpvThreadParm),
(unsigned) (fdwCreate),
(unsigned *) (&dwThreadID)))

Dans le thread principal, à la fermeture de l'application, on destroy, tu peux provoquer la fermeture du thread créé et attendre sa réelle fermeture pour supprimer le handle avec : ==>
WaitForMultipleObjects(2, g_hThread, TRUE, INFINITE); // pour un seul thread ==> WaitForSingleObject
CloseHandle(g_hThread[0]);

Pour mettre en veille un thread :
SuspendThread(g_hThread[0]);
Pour le remettre en route :
ResumeThread(g_hThread[0]);

Pour la synchronisation des 2 applis, tu peux utiliser une section critique :
CRITICAL_SECTION g_CriticalSection;

// initialisation
InitializeCriticalSection(&g_CriticalSection);
// destruction
DeleteCriticalSection(&g_CriticalSection);
// utilisation dans chaque thread
EnterCriticalSection(&g_CriticalSection); // si l'autre thread y accède alors ce thread se met en attente d'avoir la ressource
-- faire ce qui doit l'être ==> affichage???
LeaveCriticalSection(&g_CriticalSection); // libération de la section

Pour la partie dos (mode consol???), à priori comme ce n'est pas du graphique ca devrait être pareil...
l'lo


-------------------------------
Réponse au message :
-------------------------------

ok, et comment les utiliser brievement ? (sous dos)

merci de tes explications

Juke



-------------------------------
Réponse au message :
-------------------------------

salut,
chaque programme est composé de 1 ou plusieurs threads. En fait, chacun va avoir sa propre vie même si des objets permettent de les synchroniser ou de partager des ressources.
l'lo


-------------------------------
Réponse au message :
-------------------------------

Peut tu m'exxpliquer ce que c'est qu'un thread ?
j'aimerais à l'interieur d'un programme sous dos afficher l'heure en permanence independamment du reste du programme. dois je utiliser un thread ? ou alors comment faire ? est ce ansi ?



-------------------------------
Réponse au message :
-------------------------------

Bon, bhen voila.. j'essaye de faire un thread

j'aimerais ouvrir la fonctions LCD_BootScreen()
dans un thread, donc j'utilise cette fonction :

thboot= CreateThread(NULL, 0, LCD_BootScreen , NULL, NULL, NULL);

thboot est le handle de mon threads et j'ai mis tt le reste a null, pour les essais...

Mais, quand je compile avec VC++6 il me dis :

error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (void)' to 'unsigned long (__stdcall *)(void *)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Voila, je ne sais pas coment je dois ecrire l'argument 3 de la fonctions... donc, svp aider moi

merci d'avance



mercredi 6 novembre 2002 à 09:33:59 | Re : Help (threads)

Juke

merci je vais tester sa.



-------------------------------
Réponse au message :
-------------------------------

salut,
apparemment mon message ne s'est pas enregistré.... bon je recommence!
voilà pour créer un thread (cf un autre message auquel j'ai répondu)
#include <process.h>
...
typedef unsigned (__stdcall *PTHREAD_START) (void *);
...
DWORD WINAPI ProcThread (LPVOID lpThreadParameter)
{
... // pour info lpvThreadParm ==> lpThreadParameter
}
...
DWORD dwThreadID;
HANDLE hThread = ((HANDLE)_beginthreadex(
(void *) (lpsa),
(unsigned) (cbStack),
(PTHREAD_START) (ProcThread),
(void *) (lpvThreadParm),
(unsigned) (fdwCreate),
(unsigned *) (&dwThreadID)))

Dans le thread principal, à la fermeture de l'application, on destroy, tu peux provoquer la fermeture du thread créé et attendre sa réelle fermeture pour supprimer le handle avec : ==>
WaitForMultipleObjects(2, g_hThread, TRUE, INFINITE); // pour un seul thread ==> WaitForSingleObject
CloseHandle(g_hThread[0]);

Pour mettre en veille un thread :
SuspendThread(g_hThread[0]);
Pour le remettre en route :
ResumeThread(g_hThread[0]);

Pour la synchronisation des 2 applis, tu peux utiliser une section critique :
CRITICAL_SECTION g_CriticalSection;

// initialisation
InitializeCriticalSection(&g_CriticalSection);
// destruction
DeleteCriticalSection(&g_CriticalSection);
// utilisation dans chaque thread
EnterCriticalSection(&g_CriticalSection); // si l'autre thread y accède alors ce thread se met en attente d'avoir la ressource
-- faire ce qui doit l'être ==> affichage???
LeaveCriticalSection(&g_CriticalSection); // libération de la section

Pour la partie dos (mode consol???), à priori comme ce n'est pas du graphique ca devrait être pareil...
l'lo


-------------------------------
Réponse au message :
-------------------------------

ok, et comment les utiliser brievement ? (sous dos)

merci de tes explications

Juke



-------------------------------
Réponse au message :
-------------------------------

salut,
chaque programme est composé de 1 ou plusieurs threads. En fait, chacun va avoir sa propre vie même si des objets permettent de les synchroniser ou de partager des ressources.
l'lo


-------------------------------
Réponse au message :
-------------------------------

Peut tu m'exxpliquer ce que c'est qu'un thread ?
j'aimerais à l'interieur d'un programme sous dos afficher l'heure en permanence independamment du reste du programme. dois je utiliser un thread ? ou alors comment faire ? est ce ansi ?



-------------------------------
Réponse au message :
-------------------------------

Bon, bhen voila.. j'essaye de faire un thread

j'aimerais ouvrir la fonctions LCD_BootScreen()
dans un thread, donc j'utilise cette fonction :

thboot= CreateThread(NULL, 0, LCD_BootScreen , NULL, NULL, NULL);

thboot est le handle de mon threads et j'ai mis tt le reste a null, pour les essais...

Mais, quand je compile avec VC++6 il me dis :

error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (void)' to 'unsigned long (__stdcall *)(void *)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Voila, je ne sais pas coment je dois ecrire l'argument 3 de la fonctions... donc, svp aider moi

merci d'avance






Cette discussion est classée dans : help, void, thread, threads, cast


Répondre à ce message

Sujets en rapport avec ce message

Help (threads) [ par loicus ] Bon, bhen voila.. j'essaye de faire un threadj'aimerais ouvrir la fonctions LCD_BootScreen() dans un thread, donc j'utilise cette fonction :thboot= Cr Threads HELP ME PLEASE [ par loicus ] heu, j'aimerais pouvoir utiliser les threads dans mon programme afin de pouvoir lancer plusieur fonction en parallele..., Mais je n'y comprend rien... probleme avec les thread [ par macnao ] bonjour, je n'arrive pas à utiliser des threads avec builder 6, c'est a dire que je dois créer trois threads et ils doivent tourner en boucles, je sui thread et activeX avec MFC [ par lamalice83 ] bonjour,j'essaye de créer un thread à l'intérieur d'une classe, mais je n'arrive pas à l'associer avec sa fonction de routine:Dans le CLASSCtl.h :afx_ J'veux dire qqch amon programme...HELP !!! [ par lutin ] Oui en fait, j'aimerais savoir si qqun peux m'aider dans l'utilisation des messages windows.J'explique : je crée une fenetre qui lance un threaddans m Accès aux objets MFC à partir de threads non-MFC (gros bras demandé) [ par Hell Dom ] Bonsoir,Mon problème vient du fait que je ne sais pas comment le faire proprement.Donc en gros, j'ai une boite de dialogue qui lance un thread, ce der PROBLEME DE THREAD (CreateThread -->ERROR) [ par neub ] Salut à tous, j'ecris un module de visionnement d'image etje souhaiterai pouvoir stopper ma fonction OnPlay au moment voulu mais j'ai un pb a la creat Threads et heap privé [ par mzhunix ] Salut à tous,je crée un heap privé "hHeapPrivate" dans le thread principale avec HeapCreate j'alloue quelques pointeurs dessus puis je crée un autre t timer dans des threads [ par z3bul0n ] Comment faire pour gérer un SetTimer créé dans un thread sans utiliser de fonction : j'aimerai recevoir le WM_TIMER à chaque fois qu'il y en a un dans Economise le temps machine [ par maddoc2 ] Bonsoir,Je suis en train de développer une application sous Windows dans laquelle des données à collecter ont deux origines possibles. Chaque origine


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,092 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales