To je bilo u pitnju "statička funkcija", ali sada se javlja sledeci problem:
Imam funkviju koju treba da odradi nit (thread) definisnau na sledeći nacin:
Code:
class A
{
private:
UINT __cdecl ThreadFunc(LPVOID pParam); // funkcija koju izvršava nit
public:
void radi(); // funkcija u kojoj se poziva kreiranje niti
}
UINT __cdecl A::ThreadFunc(LPVOID pParam)
{
.
.
.
//nije bitno
.
.
.
}
void A::radi()
{
.
.
.
AfxBeginThread(ThreadFunc,(LPVOID)pokazivač_na_neku_promenljivu); // Ovde javlja grešku error C3867
.
.
.
}
Greška:
error C3867: 'A::ThreadFunc': function call missing argument list; use '&A::ThreadFunc' to create a pointer to member,
kada u AfxBeginThread za prvi ragumet stavim &A::ThreadFunc
Code:
AfxBeginThread(&A::ThreadFunc,(LPVOID)pokazivač_na_neku_promenljivu);
dobijam sledeću grešku:
'AfxBeginThread' : none of the 2 overloads could convert all the argument types
could be 'CWinThread *AfxBeginThread(AFX_THREADPROC,LPVOID,int,UINT,DWORD,LPSECURITY_ATTRIBUTES)'
or 'CWinThread *AfxBeginThread(CRuntimeClass *,int,UINT,DWORD,LPSECURITY_ATTRIBUTES)'
while trying to match the argument list '(UINT (__cdecl A::* )(LPVOID), LPVOID)'
Pomoć!!!!!!!!!!!!!!!!!!!!
Dalibor Zdravkovic