création d'un Thread sous MFC

création d'un Thread sous MFC - C++ - Programmation

Marsh Posté le 09-02-2004 à 20:09:15    

Comment fait-on pour créé un Thread sous Visual C++ 6.0 avec la MFC ?
tte les aides que je trouve sous pour les APIwin32 :(

Reply

Marsh Posté le 09-02-2004 à 20:09:15   

Reply

Marsh Posté le 09-02-2004 à 20:11:36    

regarde de ce côté :

Code :
  1. CWinThread * pThread =
  2. AfxBeginThread(ComputeThreadProc, GetSafeHWnd(), THREAD_PRIORITY_NORMAL);


Reply

Marsh Posté le 09-02-2004 à 20:12:35    

http://msdn.microsoft.com/library/ [...] Thread.asp


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 09-02-2004 à 20:13:34    

lecoyote a écrit :

Comment fait-on pour créé un Thread sous Visual C++ 6.0 avec la MFC ?
tte les aides que je trouve sous pour les APIwin32 :(


t'as pas du bien chercher alors :o
http://www.google.fr/search?source [...] MFC+thread


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 09-02-2004 à 20:31:50    

un prof qui m'avait filé une doc. qui stipule qui la majorité des thread en c++ se font en winapi ...
g pas trop chercher... c vrai, ms merci pr les liens

Reply

Marsh Posté le 10-02-2004 à 20:50:29    

j'ai un pb pr lancer le Thread :

Code :
  1. AfxBeginThread(MyThread,pParam,INFINITE,0,0,NULL);


voici mon erreur :
C:\Travail\afficheImage\afficheImageDlg.cpp(207) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
Ce que je comprend pas, c'est que le thread doit etre déclaré en tant que uint, comme le montre l'exemple de la MSDN.
 
Pkoi ce pb ?

Reply

Marsh Posté le 10-02-2004 à 21:17:20    

attention au prototype de la fonction passé en paramètre


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 10-02-2004 à 21:31:13    

MyThread doit être 'static'

Reply

Marsh Posté le 10-02-2004 à 22:01:46    

vé essayer, merci ;)

Reply

Marsh Posté le 10-02-2004 à 23:02:21    

un autre pb se pose :
mon thread avait pour mission d'afficher une image dans la fenetre, le pb, c que je px pas initialiser un ptr "this" dans une fct static :
 

Code :
  1. UINT CAfficheImageDlg::MonThread(LPVOID pParam)
  2. {
  3.     CAfficheImageDlg* pObject = (CAfficheImageDlg*)pParam;
  4.     if (pObject == NULL)
  5.  return 1;   // if pObject is not valid
  6.     CPaintDC dc(this); //   "this" -> error C2671: 'MonThread' : static member functions do not have 'this' pointers
  7.     (...) // mon traitement
  8.     return 0;   // thread completed successfully
  9. }
  10. void CAfficheImageDlg::OnGetImage()
  11. {
  12. LPVOID pParam;
  13. //création d'un Thread
  14. AfxBeginThread(MonThread,pParam,INFINITE,0,0,NULL);
  15. }

Reply

Marsh Posté le 10-02-2004 à 23:02:21   

Reply

Marsh Posté le 10-02-2004 à 23:08:38    

Code :
  1. AfxBeginThread(MonThread, this ....


 
 

Code :
  1. UINT CAfficheImageDlg::MonThread(LPVOID pParam)
  2. {
  3.   CAfficheImageDlg* lThis= (CAfficheImageDlg*)pParam;
  4.   CPaintDC dc(lThis);
  5.   // ...
  6. }


Message édité par SquiZZ le 10-02-2004 à 23:21:38
Reply

Marsh Posté le 11-02-2004 à 13:18:52    

ok, ca marche seulement, lors de l'éxécution, j'ai un message d'erreur du style "Debug assertion failed!", et si je fé ignorer, ... ca marche...une sol. ?

Reply

Marsh Posté le 11-02-2004 à 20:28:04    

et on est censés deviner où se produit l'assert ?

Reply

Marsh Posté le 12-02-2004 à 09:31:25    

désolé :s
Il se produit lors de la création du Thread et son éxécution, en faisant "gnoré", il s'éxécute normalement...
 
J'avais pensé rajouter un petit #pragma en en-tete, est-ce qu'il pourrait gérer ce genre d'erreur ?
Pour ce qui est du message d'erreur, c'est une erreur tt a fait banale...

Reply

Marsh Posté le 16-02-2004 à 14:25:07    

.


Message édité par lecoyote le 16-02-2004 à 14:25:39
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed