[ dalibor_zdravkovic @ 02.01.2009. 18:11 ] @
U klasi definišem promenljivu tipa:

Code:
CWinThread* lpThread[2]


Kada hocu da iskoristim ovu promenljivu npr.:

Code:

int i;
fro(i=0;i<2;i++)
{
       // dali imamo validan pokazivač
       if(lpThread[i])
              return TRUE;
       else
              return FALSE;
}


za
Code:
lpThread[i]

dobijam grešku "error C2597: illegal reference to non-static member".

Gde grešim POMOĆ!
[ vladaboy93 @ 03.01.2009. 17:36 ] @
samo ukucaj index tog errora u MSDN i dobices ono sto ti treba

izgleda da ti je funckija staticka pa onda gleda tu promenjivu kao da nije deo klase

struct s1 {
static void func();
int i;
};

void s1::func() {
i = 1; // C2597 ovde je error

// OK
s1 a; // mozes pristupiti toj promenjivoj jedino kroz instancu klase, posto je funckija staticka
a.i = 1;
}
[ dalibor_zdravkovic @ 04.01.2009. 01:24 ] @
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ć!!!!!!!!!!!!!!!!!!!!
[ Dragi Tata @ 04.01.2009. 01:56 ] @
http://www.codeproject.com/KB/cpp/cppforumfaq.aspx#cpp_callbacks
[ dalibor_zdravkovic @ 04.01.2009. 11:11 ] @
Hvala svima!