Salut,

Je débute en C++ et je galère un peu pour un truc super simple en java. Je suppose que pour les connaisseurs du C++, ça doit être également assez simple.

Voilà le problème :

J'ai créé une appli à embarquer sur pocket PC via Visual Studio. C'est une appli MFC avec une classe CDialog.
Cette classe CDialog doit réagir à des événements externes à sa classe. Pour ça, j'ai créé un thread qui capte les différents événements et doit les transmettre à la classe CDialog. C'est la transmission à la classe CDialog qui me pose problème. J'ai tenté de transmettre au thread l'instance CDialog mais ça ne fonctionne pas (l'instance est nulle). Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
 
BOOL CWCETest4Dlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	m_me = this;
	return TRUE;  // return TRUE  unless you set the focus to a control
}
// Code du thread
DWORD WINAPI Detection(LPVOID lpParameter){
	CWCETest4Dlg* objDlg = (CWCETest4Dlg*) objDlg;
	objDlg->SetEditBox();
	return 0;
}
 
// Lancement du thread
void CWCETest4Dlg::OnBnClickedButton1()
{
	DWORD ThreadID;
	HANDLE hExampleThread;
 
	hExampleThread = CreateThread( NULL,0,DetectionNFC2,m_me,0,&ThreadID );
}
 
// La fonction à lancer à partir du thread
void CWCETest4Dlg::SetEditBox()
{
	m_edit.SetWindowTextW(_T("Edition"));
}
Le thread est bien créé, mais il ne récupère pas l'instance de la classe CDialog. Qq'un voit-il où est mon erreur ?