Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Illegal reference to non-static member (POMOĆ)

[es] :: C/C++ programiranje :: Illegal reference to non-static member (POMOĆ)

[ Pregleda: 2371 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dalibor_zdravkovic
Dalibor Zdravkovic
Ne Zaposlen
Leskovac

Član broj: 155994
Poruke: 114
*.info-net.co.yu.



+1 Profil

icon Illegal reference to non-static member (POMOĆ)02.01.2009. u 18:11 - pre 186 meseci
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Ć!
Dalibor Zdravkovic
 
Odgovor na temu

vladaboy93
Vladimir Makaric
Novi Sad

Član broj: 137777
Poruke: 376
77.46.167.*

Sajt: vladimirmakaric.110mb.com


Profil

icon Re: Illegal reference to non-static member (POMOĆ)03.01.2009. u 17:36 - pre 186 meseci
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;
}
 
Odgovor na temu

dalibor_zdravkovic
Dalibor Zdravkovic
Ne Zaposlen
Leskovac

Član broj: 155994
Poruke: 114
*.info-net.co.yu.



+1 Profil

icon Re: Illegal reference to non-static member (POMOĆ)04.01.2009. u 01:24 - pre 186 meseci
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
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.hsd1.ma.comcast.net.



+6 Profil

icon Re: Illegal reference to non-static member (POMOĆ)04.01.2009. u 01:56 - pre 186 meseci
http://www.codeproject.com/KB/cpp/cppforumfaq.aspx#cpp_callbacks
 
Odgovor na temu

dalibor_zdravkovic
Dalibor Zdravkovic
Ne Zaposlen
Leskovac

Član broj: 155994
Poruke: 114
*.info-net.co.yu.



+1 Profil

icon Re: Illegal reference to non-static member (POMOĆ)04.01.2009. u 11:11 - pre 186 meseci
Hvala svima!
Dalibor Zdravkovic
 
Odgovor na temu

[es] :: C/C++ programiranje :: Illegal reference to non-static member (POMOĆ)

[ Pregleda: 2371 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.