SDL(Mehrere Functionen und cpp dateien)



  • Hi,
    erteinmal vielen dank.
    SDL_Dest stand so im Tutorialcode.
    Von den Headern hab ich nichts gewusst, sorry.
    Vielen dank für die Hilfe, werd´s gleicheinmal testen.

    cu max



  • Hi,
    vielen dank @SnorreDev.Die 8Fehler sind verschwunden und
    er fängt auch an zu Linken, doch dann kommt noch eine Fehlermeldung.
    (Ich denke ich bin auf den Kopf gefallen, denn es scheint so das
    nichts was ich tue funktioniert und mein dasein begründet 😃 )
    **

    --------------------Konfiguration: code - Win32 Debug--------------------
    Linker-Vorgang läuft...
    code.obj : error LNK2001: Nichtaufgeloestes externes Symbol "struct SDL_Surface * screen" (?screen@@3PAUSDL_Surface@@A)
    Pyramidal-Engine.obj : error LNK2001: Nichtaufgeloestes externes Symbol "struct SDL_Surface * screen" (?screen@@3PAUSDL_Surface@@A)
    Debug/code.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

    code.exe - 3 Fehler, 0 Warnung(en)

    **

    Gut, ich weiß das ist nun sicher ein absuluter Anfängerkram,
    denn es hat sicher etwas mit dem Include File au sich.

    Tut mir leid wenn ich euch nerve, vielleicht will mir trotzdem
    jemand antworten, wenn dem so sei, vielen dank im vorraus.

    cu max



  • Linke die SDL Library mit, dann ist das Problem weg. Und bei VC mußt du das ganze als Multithreaded laufen lassen wegen der SDL.



  • Hi,
    sdl.lib und sdlmain.lib sind wie immer gelinkt gewesen,
    dass mit dem Multithreadet muss ich mal schauen wo ichs einstellen
    kann.Vielen dank erstmal.
    PS:Was bedeutet das Multithreadet?

    cu max



  • Das dein Programm mehrere "Threads" / Prozesse nebeneinander laufen lassen kann.

    Ein Single Threaded Prog sieht so aus:

    A -> B -> C
    

    Ein Multithreaded kann so aussehen:

    A -> B -> E
     \-> C -> D
    

    Hoffe du verstehst was ich meine



  • Hi,
    vielen dank.
    Eigentlich verstehe ichs nicht.
    Naja, aber was hat das damit zu tuen das dass Programm nicht läuft?
    Ist das dafür notwendig?Kann mir dazu jemand vielleicht einen
    Tutorial link geben?

    cu max



  • Ganz einfach - die SDL ist eine Multithreaded Library, also muß das Programm, wo die Library nutzt auch mit Multithreading umgehen können.
    Tutorial zu SDL? Mhhh - hab ich mal wo gesehen, glaube sogar von einem der Boardmitglieder hier. Schau mal in die FAQ vielleicht gibts da welche.



  • Master_Max schrieb:

    Eigentlich verstehe ichs nicht.

    Das bedeutet daß Dein Prog mehrere Sachen gleichzeitig machen kann...



  • nicht gleichzeitig, sondern parallel



  • kind schrieb:

    nicht gleichzeitig, sondern parallel

    Was genau das gleiche ist... 🙄



  • Hi,
    vielen dannk @all.
    Gibt es ein Tutorial was das genau erklärt?

    @Snorre, Tutorials zu SDL hab ich ein paar gute,
    aber da sich die Leute dort keine Engine schreiben,
    wird auch nicht darauf eingegangen, sie machen alles
    direkt im Programmcode.

    Vielen dank im vorraus.

    cu max



  • Das hat ja auch nix mit der SDL zu tun, dass sind C/C++ Grundlagen.



  • Hi,
    in C++ hab ich ja auch eine übung zu dem Thema schon davor
    gecodet, die ging.In der erstellte ich zwei .cpp files
    und includierte sie.
    In der main rief ich eine funktion der anderen cpp file auf.
    Das ging einwandfrei, also dachte ich das dass in der SDL
    auch gehen sollte.

    Code:Main.cpp

    #include <iostream.h>
    
    int printfunction();
    
    int main(){
    
    	printfunction();
    
    		return 0;
    
    }
    

    Code:Printfunction.cpp

    #include <iostream.h>
    
    int printfunction(){
    	cout << "Es geht also";
    
    	return 0;
    
    }
    

    Ich denke das ist verkürtzt das was ich in meinem Programm tue
    (Bis darauf das ich keine .h files benutze, das sollte aber keine
    rolle spielen)

    cu max



  • Hi,
    ist das was ich da gemacht hab vom Prinzip her das selbe?
    (Eigentlich ruf ich ja bei meinem anderen proc auch nur functionen
    aus der anderen .cpp auf.)
    Vielen dank im vorraus

    cu max



  • Eigentlich ist es das selbe, da du den Prototyp ja vor deiner Funktion deklarierst. Allerdings solltest du schon alleine wegen der Sauberkeit auf Source ( CPP, CC, C ) und Header ( H ) zurückgreifen. Vorallem kannst du ein Headerfile mehrfach includen, während du mit dem Prototyp vor deinem Programm in mehreren Dateien ärger bekommen könntest, wegen "Object multiple defined" oder so.



  • Hi,
    hmmm um ganz ehrlich zu sein hab ich noch nie wirklich
    mit .h files gearbeitet, weis jetzt auch gar nicht genau
    was ich darin alles machen kann, aber ich hab hier genügend literatur
    und werd die Lücke stopfen.

    SnorreDev shrieb:
    solltest du schon alleine wegen der Sauberkeit auf Source ( CPP, CC, C ) und Header ( H ) zurückgreifen.

    Hab ich wohl nicht richtig dazugeschrieben:(so ist es also in echt)

    MAIN.cpp

    #include <iostream.h> 
    
    int printfunction(); 
    
    int main(){ 
    
        printfunction(); 
    
            return 0; 
    
    }
    

    Printfunction.cpp

    C/C++ Code: 
    #include <iostream.h> 
    
    int printfunction(){ 
        cout << "Es geht also"; 
    
        return 0; 
    
    }
    

    cu max



  • Hi.
    Ist das nun das gleiche?

    Vielen dank im vorraus.

    cu max



  • Hi,
    da niemand antwortet, vermute ich jetzt einfach mal dass
    meine Theorie ein völliger schwachsinn ist, welcher
    nie das Licht des Bildschirms erblicken hätte sollen.
    Trotzdem danke.

    Wäre nett, wenn mir jemand einen Link zu nem Tut oder soetwas
    geben könnte.

    cu max



  • Hi,
    hab gegooglet.
    http://www.codeworx.org/cpp_tuts_1_5.php
    für alle denen Multithreading noch ein Rätsel ist.

    cu max



  • ich glaubr das problem is, niemand weiß wo eigentlich dein problem liegt.


Anmelden zum Antworten