Linker Error...



  • Hallo,
    ich bekomme einen Linker Error und weiß einfach nicht woran es liegt (ja ich weiß... Linker error sollte man schon selber rauskriegen, aber ich schaffs einfach nicht :()
    Habe den Code aus einem Tutorial und er sollte eigentlich nach meinem Wissen her funktionieren...

    Fehler	1	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: static bool __cdecl Surface::OnDraw(struct SDL_Surface *,struct SDL_Surface *,int,int)" (?OnDraw@Surface@@SA_NPAUSDL_Surface@@0HH@Z)" in Funktion ""public: void __thiscall App::OnRender(void)" (?OnRender@App@@QAEXXZ)".	OnRender.obj	SDL
    
    Fehler	2	fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
    

    OnRender.cpp

    #include "App.h"
    
    void App::OnRender()
    {
            //Hier kracht es
            //Wenn ich es wegnehme, funktionierts
    	Surface::OnDraw(surface, surfTest, 0, 0);
    
    	SDL_Flip(surface);
    }
    

    Surface.cpp

    #include "Surface.h"
    
    Surface::Surface()
    {}
    
    SDL_Surface * Surface::OnLoad(const char *filename)
    {
    	SDL_Surface *surfTemp = NULL;
    	SDL_Surface *surfRet = NULL;
    
    	surfTemp = SDL_LoadBMP(filename);
    	if(!surfTemp)
    		return NULL;
    
    	surfRet = SDL_DisplayFormat(surfTemp);
    
    	SDL_FreeSurface(surfTemp);
    
    	return surfRet;
    }
    
    bool OnDraw(SDL_Surface *surfDest, SDL_Surface *surfSrc, int x, int y)
    {
    	if(surfDest == NULL || surfSrc == 0)
    		return false;
    
    	SDL_Rect destRect;
    
    	destRect.x = x;
    	destRect.y = y;
    
    	SDL_BlitSurface(surfSrc, NULL, surfDest, &destRect);
    
    	return true;
    }
    

    Surface.h

    #ifndef Surface_h__
    #define Surface_h__
    
    #include <SDL.h>
    
    class Surface
    {
    public:
    	Surface();
    
    	static SDL_Surface * OnLoad(const char *filename);
    	static bool OnDraw(SDL_Surface *surfDest, SDL_Surface *surfSrc, int x, int y);
    };
    
    #endif // Surface_h__
    

    Hoffe mir kann einer helfen und seid nicht zu hart zu mir 😃


  • Administrator

    Du hast bei der Definition von OnDraw in der Surface.cpp ein Surface:: vornedran vergessen 😉

    Grüssli



  • Dravere schrieb:

    Du hast bei der Definition von OnDraw in der Surface.cpp ein Surface:: vornedran vergessen 😉

    Grüssli

    Danke ... immer wieder diese Flüchtigkeitsfehler 😡 🙂


Anmelden zum Antworten