| jimmye Temat założony przez niniejszego użytkownika | Unresolved, overloaded... » 2010-04-21 19:38:53 Otóż mam pewien problem z używaniem funkcji silnika HGE w klasach. Przypisuję funkcję renderującą do silnika HGE: hge->System_SetState( HGE_RENDERFUNC, RenderFunc ); Deklaracja Klasy: class Game{
 public:
 bool RenderFunc();
 
 private:
 HGE * hge;
 hgeFont * font;
 hgeGUI * gui;
 };
 
Przy tej deklaracji mam błąd "unresolved overloaded function type" dotyczący tej funkcji, więc deklaruję tak: static bool RenderFunc();
Funkcja używa obiektów hge font i gui, więc je też deklaruję jako static. Przy następnej kompilacji nie ma już tego błędu, ale podczas linkowania pojawia się błąd "undefined reference" dotyczący zadeklarowanych wyżej obiektów, które używane są w funkcji RenderFunc(). Nie wiem już jak mam to zadeklarować, więc proszę o pomoc. Z góry dzięki. x.x | 
|  | 
| DejaVu | » 2010-04-21 19:43:36 unresolved == funkcja nie posiada defninicji == nie dołączyłeś biblioteki (linker się kłania) lub nie utworzyłeś definicji funkcji, a istnieje deklaracja i próbujesz wywołać tą funkcję. | 
|  | 
| jimmye Temat założony przez niniejszego użytkownika | » 2010-04-21 19:49:09 ~EDIT: oto kod razem z błędami: class Game{
 public:
 Game();
 ~Game();
 
 static bool RenderFunc();
 static bool FrameFunc();
 
 void Connect();
 
 private:
 static HGE * hge;
 static hgeFont * font;
 static hgeGUI * gui;
 
 NetworkManager NetMan;
 };
 bool Game::RenderFunc()
 {
 
 hge->Gfx_BeginScene();
 hge->Gfx_Clear( 0 );
 font->printf( 5, 5, HGETEXT_LEFT, "dt:%.3f\nFPS:%d (constant)", hge->Timer_GetDelta(), hge->Timer_GetFPS() );
 gui->Render();
 hge->Gfx_EndScene();
 
 return false;
 }
 
 bool Game::FrameFunc()
 {
 float dt = hge->Timer_GetDelta();
 int id;
 
 
 
 id = gui->Update( dt );
 
 if( hge->Input_GetKeyState( HGEK_ESCAPE ) ) return true;
 
 return false;
 }
.objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 .objs\src\game.o:game.cpp|| more undefined references to `Ankle::Game::hge' follow|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::font'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::gui'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::gui'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 .objs\src\game.o:game.cpp|| undefined reference to `Ankle::Game::hge'|
 ||=== Build finished: 15 errors, 0 warnings ===|
 
 | 
|  | 
| DejaVu | » 2010-04-22 11:36:41 Jak już pisałem nie zlinkowałeś biblioteki HGE. Wklejenie Twojego kodu nic nie zmienia ponieważ on się kompiluje tyle, że nie ma definicji funkcji, które należy dostarczyć poprzez dołączenie biblioteki HGE z rozszerzeniem *.lib (visual) albo *.a (gcc) za pomocą linkera. | 
|  | 
| Elaine |   » 2010-04-22 14:16:09 | z rozszerzeniem *.lib (visual) albo *.a (gcc) | 
 Co ma rozszerzenie do formatu pliku? Linkera rozszerzenie nie interesuje, tylko format... | 
|  | 
| jimmye Temat założony przez niniejszego użytkownika | » 2010-04-22 14:16:41 Hmm, biblioteki mam dołączone :| bo robiłem już przykładowe programy nie używając klas (wzsystko było wtedy dobrze). Zaraz jeszcze sprawdzę kod, może coś pominąłem... | 
|  | 
| DejaVu | » 2010-04-22 15:55:24 | Co ma rozszerzenie do formatu pliku? Linkera rozszerzenie nie interesuje, tylko format...| z rozszerzeniem *.lib (visual) albo *.a (gcc) | 
 | 
 Czepiasz się. | 
|  | 
| jimmye Temat założony przez niniejszego użytkownika | » 2010-04-22 16:47:37 Już sobie poradziłem.
 Spierajcie się dalej XD
 | 
|  | 
| « 1 »  2 |