Konsole mit SDL



  • Hi,

    ich suche nun schon seid gefühlten Jahrhunderten nach einer Möglichkeit SDL zu benutzen und trotzdem nur ein Konsolenfenster zu haben.

    Ich wollte mal zur Übung eine Art Spielserver machen auf dem sich die Clients anmelden können und co.

    Und als reiner Server braucht man kein aufwendiges Fenster. Konsolen ein und ausgaben sollten da reichen finde ich.

    Hoffe ihr könnt mir da helfen.

    Gruß
    zOrg



  • Schön und jetzt?



  • bei sdl wie bei vielen anderen libs muss man ja zwangsweise kein fenster erstellen glaub ich.
    ansonsten einfach ein konsolen projekt erstellen und kein fenster starten.
    sollte denk ich gehen.



  • @Kóyaánasqatsi

    Kaffee Trinken 🙂

    @endless

    Hab ich alles schon versucht ( Denke mal du meinst SDL_Init(0); ). Doch sobald ich die SDL.h einbinde verschwindet die Konsole oder man sieht sie aber ist nicht benutzbar. Also keine ein und ausgaben möglich.

    Ich weiß jetzt nicht wie weit SFML so Sachen wie Netzwerk unterstützt. Für SDL gibt es ja SDL_Net. Von SFML habe ich heute hier im Forum zum erstem gehört.

    Um SDL_Net benutzen zu können muss ich ja die SDL.h einbinden bzw das macht SDL_Net ja schon selber. Und sobald das passiert ist alles mit Konsole halt weg 😞

    Habe bisher nur Sachen von Leuten lesen können welche die Konsole hatten und weg haben wollten. Hab dann mal das gegen teil gemacht und aus meinem Projekt eine Konsolenanwendung gemacht aber das brachte nicht den gewünschten Erfolg.

    Hoffe sehr das hier jemand eine Idee dazu hat.



  • zOrg schrieb:

    Ich weiß jetzt nicht wie weit SFML so Sachen wie Netzwerk unterstützt. Für SDL gibt es ja SDL_Net. Von SFML habe ich heute hier im Forum zum erstem gehört.

    Ja, zum Thema Netzwerk hat SFML hat auch etwas zu bieten. Schau mal beispielsweise ganz unten bei den Tutorials.

    zOrg schrieb:

    Habe bisher nur Sachen von Leuten lesen können welche die Konsole hatten und weg haben wollten. Hab dann mal das gegen teil gemacht und aus meinem Projekt eine Konsolenanwendung gemacht aber das brachte nicht den gewünschten Erfolg.

    Ich weiß nicht wie man das bei SDL machen könnte (falls es dort überhaupt geht), aber bei SFML würde das Erstellen eines Konsolenanwendungprojektes und das Einbinden der verwendeten Bibliotheken schon zu dem Ergebnis führen was du haben willst. Das Konsolenfenster öffnet sich und falls du kein SFML-Fenster in deinem Code erstellt hast, bleibt es auch dabei.



  • Ich wäre auch für SFML. Hab das damit auch schon gemacht. Funktioniert ganz gut wenn man einfach kein Fenster erstellt.

    gruß michi



  • so, habe noch bissel mit SDL rumgespielt.

    Also wenn ich in der SDL_net.h den Eintrag #include "SDL.h" auskommentiere dann hab ich die Konsole. In wie weit sich das aber auf die ganzen SDL_net Funktionen auswirkt weiß ich noch nicht genau. xD

    Was ich weiß ist, das die Funktion SDLNet_GetError() jetzt nicht mehr geht.

    Mal sehen was ich da noch drehen kann 🙂



  • also ich würde nicht sagen, dass das unbedingt etwas mit SDL zu tun hat. Ich benutze auch SDL, und habe auf der Konsole meine Ausgaben. Sind wohl eher Projekteinstellungen vom Visual Studio.

    Ich arbeite aber auch unter Linux, und da funktioniert das mit der Konsole sowieso ein wenig anders. Die Konsole bzw Terminal ist immer dann sichtbar, wenn ich aus der Konsole Starte, und die IDE öffnet diese für mich.

    Da SDL primär für Linux entwickelt wurde bezweifle ich stark, dass da irgendetwas windows spezifisches enthalten ist.



  • Wenn ich mich recht erinnere, muss man unter Windows - wenn man ein Konsolenfenster haben will das main-Makro löschen:

    ungetestet:

    #ifdef WINDOWS
        #undef main
    #endif
    

    Damit dürfte das Problem erledigt sein. Da ich aber seit geraumer Zeit nicht mehr unter Windows programmiere, kann ich dafür keine Garantien abgeben 😉

    Grüße... Heiko



  • Unter Linux habe ich immer eine Konsole bei SDL-Anwendungen wenn ich normal mit int main(...) beginnen. Das ist unabhaengig davon , ob ich ein Fenster erzeuge oder nur den Dummy-Video-Driver benutze.



  • Das Konsolenfenster kannst du relativ leicht an- oder abschalten. Wenn die Tipps der anderen dir nicht weiterhelfen, musst du allerdings mal verraten, welche IDE und welches OS du verwendest, damit wir dir sagen koennen, was du tun sollst. 😉

    (EDIT: und eine Google-Suche nach "SDL console window" hat gleich auf der ersten Seite Treffer die das Vorgehen unter MSVC und mit dem MinGW erklaeren).


Anmelden zum Antworten