[ Predrag Damnjanovic @ 16.10.2002. 12:46 ] @
Ahm.
Imam ovako:
void glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));

E sad, kad mu prosledim pointer na obicnu funkciju (koja nije u klasi) sve je OK!
Dakle, kada kazem:
glutMouseFunc(mouse);
to radi!

Ali, ako imam klasu 'gui_class', objekat 'gui' (klase 'gui_class') i onu istu funkciju mouse u klasi - i ako probam da je prosledim funkciji... ne ide.

Dakle, kada kazem:
glutMouseFunc(gui.mouse);
dobijam:
myep.cpp:42: no matches converting function `mouse' to type `void (*)(int, int, int, int)'
mye/gui/gui.h:103: candidates are: void gui_class::mouse(int, int, int, int)

Sta da radim?
[ tosa @ 16.10.2002. 13:13 ] @
probaj da member f-ju koju prosledjujes za callback deklarises kao static
[ Predrag Damnjanovic @ 16.10.2002. 14:26 ] @
Pa onda mogu da se slikam, jer ta f-ja menja neke promenljive u klasi, ne moze nikako da bude static.
[ doomed @ 16.10.2002. 16:10 ] @
Citat:
Predrag Damnjanovic:
Ahm.
Imam ovako:
void glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));

E sad, kad mu prosledim pointer na obicnu funkciju (koja nije u klasi) sve je OK!
Dakle, kada kazem:
glutMouseFunc(mouse);
to radi!

Ali, ako imam klasu 'gui_class', objekat 'gui' (klase 'gui_class') i onu istu funkciju mouse u klasi - i ako probam da je prosledim funkciji... ne ide.

Dakle, kada kazem:
glutMouseFunc(gui.mouse);
dobijam:
myep.cpp:42: no matches converting function `mouse' to type `void (*)(int, int, int, int)'
mye/gui/gui.h:103: candidates are: void gui_class::mouse(int, int, int, int)

Sta da radim?


probaj da pregledas temu http://www.elitesecurity.org/tema/13932
mozda ti pomogne
[ Predrag Damnjanovic @ 16.10.2002. 17:14 ] @
Gledao sam je vec, nije to to...
[ Dragi Tata @ 16.10.2002. 17:25 ] @
http://www.codeproject.com/cpp/cppforumfaq.asp#cpp_callbacks
[ leka @ 16.10.2002. 22:30 ] @
Nemanja, tvoj potpis je pre nekoliko dana bio topik na kanalu #OS na BalcanNET-u :)
[ Dragi Tata @ 16.10.2002. 22:36 ] @
A, nekom se dopao moj potpis?

Iskren da budem, nisam ga izmislio već je to prevod neke "pošalice" koju sam video na CP-u.
[ leka @ 17.10.2002. 17:11 ] @
Ne, topik je bio pre nego si ti to stavio u potpis.
[ gosha @ 17.10.2002. 18:23 ] @
Citat:
Predrag Damnjanovic:
Ahm.
Imam ovako:
void glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));

E sad, kad mu prosledim pointer na obicnu funkciju (koja nije u klasi) sve je OK!
Dakle, kada kazem:
glutMouseFunc(mouse);
to radi!

Ali, ako imam klasu 'gui_class', objekat 'gui' (klase 'gui_class') i onu istu funkciju mouse u klasi - i ako probam da je prosledim funkciji... ne ide.

Dakle, kada kazem:
glutMouseFunc(gui.mouse);
dobijam:
myep.cpp:42: no matches converting function `mouse' to type `void (*)(int, int, int, int)'
mye/gui/gui.h:103: candidates are: void gui_class::mouse(int, int, int, int)

Sta da radim?


Pri pozivu f-je clanice klase dolazi do prosledjivanja "skrivenog parametra" (this) samim tim te dve funkcije nisu iste, zato to radi samo sa statickim f-jama (njima se ne prosledjuje skriveni parametar).

Pozdrav Goran.