Error thread

Bonjour,

Bonjour

mon programme marche comme suivant:
Lorsqu'on coche une case (grab), on lance un thread qui va éxécuter le while et vérifier l'état d'une variable qui va permettre d'interrompre la boucle infinie. Lorsqu'on decoche la case, on change l'état de cette variable pour sortir de la boucle infinie.

bool ATTENTE_Active;

bool ThreadP201_Actif=false;

HANDLE P201;

int DWORDID_P201, SansArgument;

void CUserOCXAppDlg::OnCGrab() // La fonction appelée lorsqu'on coche (ou décoche) la case grab

{

if (m_cvImgSrc.GetIsGrabber())
{

ATTENTE_Active=true;
P201= CreateThread( NULL, 0, SpATTENTE,&SansArgument,0 ,&ID_P201);
}

else
{
ATTENTE_Active=false;
}
}

// ===========================================

DWORD WINAPI SpATTENTE( LPVOID Param )

{
ThreadP201_Actif=true; //Variable générale qui indique que le thread est actif et chargé en mémoire

while( ATTENTE_Active)
{
void CUserOCXAppDlg::OnBSnap();
}

// Fin du thread :

ThreadP201_Actif=false;

ExitThread( 0 );

return 0;

}

mais j'ai eu les erreurs suivants:

error C2065: 'SpATTENTE' : undeclared identifier
error C2065: 'ID_P201' : undeclared identifier
error C2365: 'SpATTENTE' : redefinition; previous definition was 'formerly unknown identifier'
error C2761: 'void CUserOCXAppDlg::OnBSnap(void)' : member function redeclaration not allowed
1>Build log was saved at "file://d:\...\BuildLog.htm"

Merci de m'aider

4 réponses

  1. Contributeur
    Salut.
    Il manqué une déclaration de SpATTENTE en début de programme. Son utilisation dans CreateThread est donc impossible.
    Pareil, ID_P201 n'est pas déclaré.
    1
    1. Contributeur
      le void devant l'appel lui fait croire à une redéfinition.
      1
      1. oui c'est reglé merci
        et pour l'erreur C2761: member function redeclaration not allowed ?
        0
        1. qu'est ce que je dois faire pour lui dire qu'il ne s'agit pas d'une redéfinition ?
          0
          1. Contributeur
            vire le void qui ne sert à rien.
            0