Bonjour
je suis en train de crée une librairie COM a l'aide de ATL, et j'ai besoin d'utiliser les threads, mais je ne sais pas comment déclarer et utiliser un thread en C++.
merci pour votre aide
Version imprimable
Bonjour
je suis en train de crée une librairie COM a l'aide de ATL, et j'ai besoin d'utiliser les threads, mais je ne sais pas comment déclarer et utiliser un thread en C++.
merci pour votre aide
Bonjour,
Le C++ ne gère pas nativement les threads.
Dans le prochain standard, il y aura une lib de threads dans la STL, mais pour l'instant il faut que tu utilises une lib externe telle que boost.thread.
http://www.boost.org/doc/libs/1_36_0...ml/thread.html
Merci pour ta réponse, je suis en train de lir cette documentation.
Est ce la seule solution pour utiliser les threads en c++ ? n'y a t il pas d'autres lib (eventuellement avec doc francais) ?
Les biblio de Boost sont d'excellente qualité, reconnues de tous. Ce serait dommage de s'en passer sous prétexte que la doc est en anglais.
Tu risques de devoir te passer de beaucoup de choses si l'anglais te rebute à ce point…
Autrement, à part les libs de threads intégrées à wxWidgets et Qt (libs d'interfaces graphiques), je n'en connais pas d'autres. Je te laisse le soin de chercher sur le net.
Merci encore,
je voulais just mieux connaitre cette lib, a propos la doc en anglais je m'en debrouillerai ;)
Bonjour
Si tu as du COM/ATL j'en déduis que tu es sur Windows. Donc, tu peux utiliser l'interface windows ou les MFC pour cela. Fais un tour du côté du MSDN. Ensuite, si tu as des questions orientes-toi plutôt vers le forum MFC, tu auras plus de chance de trouver des réponses à tes questions.
Note: si ton composant COM qui crée des threads peut être utilisé comme extension du shell, pense à ceci:
http://blogs.msdn.com/oldnewthing/ar...8/8555658.aspx
Et en fait, fais-le même si ce n'est pas une extension du shell. J'ai eu des problèmes dans un prog console car le composant COM de compression Zip ne le fait pas...
Merci pour vos conseils, je vais jeter un coup d'oeuil sur les liens
j'ai appliqué le même code dans l'example de msdn :Tout ca est bien evidemment dans une de mes classes, mais je recois l'erreur de compilation suivante :Code:
1
2
3
4
5
6
7
8
9
10
11 public: UINT WMWatcher(LPVOID pParam) { return 0; } CWMApplication() { LPVOID pParam = NULL; CWinThread* th = AfxBeginThread(WMWatcher, pParam); }
Citation:
error C3867: 'CWMApplication::WMWatcher': function call missing argument list; use '&CWMApplication::WMWatcher' to create a pointer to member
Merci pour ton aide, voici la modif que j'ai fait et ca se compile maintenant:Code:
1
2
3
4
5
6
7
8
9
10
11 public: static UINT WMWatcher(LPVOID pParam) { return 0; } CWMApplication() { LPVOID pParam = NULL; CWinThread* th = AfxBeginThread(WMWatcher, pParam); }
oups
ma methode ne doit pas etre static, car elle utilise des memebres privés !
j'ai pas encore résolu mon probleme même en regardant l'exemple dans la FAQ ! :alerte:
ok cette fois j'ai réussit à résoudre le probleme en suivant les etapes pas a pas de l'exemple dans la FAQ, merci a vous tous