Zeiger auf Zeiger in anderer CPP



  • Gude Leute,
    mein Problem ist, dass ich Screen in meiner GameWorld.cpp brauche, aber der pointer für den Screen bzw. die Initialisierung ist in Client.cpp, vielleicht wird das durch den Code deutlich:

    client.cpp
    
    SDL_Surface *Screen = NULL;
    
    bool CClient::Init()
    {
    	//Initialisierung der SDL Schnittstelle
    	if(SDL_Init(SDL_INIT_EVERYTHING) == -1)
    	{
    		//Fehler beim initialisieren von SDL // TODO: SDL_GetError()
    		MessageBox(NULL, "failed to initialize sdl", NULL, NULL);
    		return false;
    	}
    
    	//Screen einstellen
    	Screen = SDL_SetVideoMode(	SCREEN_W,				//Breite			
    								SCREEN_H,				//Höhe
    								SCREEN_BPP,				//Bittiefe
    								FULLSCREEN? SDL_FULLSCREEN | SDL_HWSURFACE : SDL_SWSURFACE );		//Flag für Oberfläche
    	if(Screen == NULL)
    	{
    		//Fehler beim einstellen des Videomodes
    		MessageBox(NULL, "failed to set screen", NULL, NULL);
    		return false;	
    	}
    
    	//Fensternamen einstellen
        SDL_WM_SetCaption("Neila", NULL);
    
    	return true;
    }
    
    GameWorld.cpp
    
    void CGameWorld::show()
    {
    pGfx->RenderSurface( box.x, box.y, tileSheet, Screen, &clip[ type ] ); 
    }
    

    Ich kann jetzt für beide logischerweise nicht den Selben Zeiger benutzen, außerdem muss ich ja irgendwie sagen was der Screen ist...wenn jemand mein Problem versteht, hätte ich gerne hilfe, wenn nicht, dann sagt mir was für euch nicht verständlich ist.



  • Meinst Du vielleicht "extern":

    //foo.cc
    #include <string>
    
    std::string blabla;
    
    void init() {
      blabla = "Hallo Welt!";
    }
    
    //bar.cc
    #include <iostream>
    
    extern const char* blabla;
    extern void init();
    
    int main(){
      init();
      std::cout << blabla << '\n';
    }
    

    Kompilieren,linken, fertig.



  • Ähm das sollte natürlich nicht const char* sein... in bar.cc...



  • tut mir leid, aber extern hatte ich schon und das gibt einen Fehler.



  • wside schrieb:

    tut mir leid, aber extern hatte ich schon und das gibt einen Fehler.

    Einen Fehler. Dann ist ja alles klar ...



  • Problem hat sich erledigt !


Anmelden zum Antworten