Bonjour à tous!
Je pensais trouver la solutio en cherchant sur le net, mais ca fait une heure que je tourne en rond alors je me lance...
En fait, je veux faire un truc tout bete: un thread qui recupere des données d'une camera.

Pour cela j'ai créé la classe CMaClasse qui en gros ressemble à ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
class CMaClasse
{
public:
	CMaClasse(void);
	~CMaClasse(void);
 
   CCamera Camera;  //classe qui gère la caméra
 
   void StartCamera();
   static UINT MyThread(LPVOID pvParam)
}
Dans ma fonction StartCamera(), je lance le thread:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
AfxBeginThread(DisplayCam, this );
Puis je definie ce que je veux faire dans mon thread (je veux pouvoir mettre les donnees RGB da mon image dans "Image":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
UINT CCamera::DisplayCam(LPVOID pvParam)
{
	CMaClasse *pThis = reinterpret_cast<CMaClasse *>(pvParam);
	unsigned char *pImage = new unsigned char[CAMERA_WIDTH*CAMERA_HEIGHT*3];
	while (pThis->m_showCamera)
	{
                Camera.GetDIB(pImage)
	}
	return 0;
}
C'est la fonction GetDIB de ma classe CCamera qui devrait faire la travail de stockage des donnees dans la "Image". Or, ce n'est pas la cas:
- il dit ne pas connaitre "Camera" et donc impossible de jouer avec la fonction GetDIB.
Pourquoi ne reconnait-il pas la "Camera" alors que je la declare dans CMaClasse ? Est-ce que ca a à voir avec le fait que mon thread est déclaré static ?
J'ai bien fais les include, donc le probleme ne se situe pas la... (je peux par exemple utiliser l'objet "Camera" sans probleme dans StartCamera() !