Welcher Compiler ist der Beste für ein Konsolen-Programm?::und ein Fehler



  • Hallo,

    Welcher Compiler ist der Beste für ein Konsolen-Programm?

    Ich will ein Programm schreiben, was in der (DOS-)Konsole gestartet wird.

    Dabei will ich viele Funktionen verwenden können, wie den Cursor ausblenden, Bilder einfügen (falls möglich in DOS), Speakersound, alles was man für ein DOS-Spiel halt so braucht.
    Die Mouse sollte nicht funktionieren, wäre mir auch lieber, wenn man diese ausschalten könnte, z.B. bei den Konsolen unter NT.

    Und noch der Fehler:

    //Borland C++ 5.01 auf Win2K Prof.
    Fehler 
      do 
        { 
         f = 1; 
         textcolor(WHITE); 
         gotoxy (15,2); 
         if (cscanf ("%f", &MoneySet)) 
             f = 0; 
         if ((MoneySet < 1)||(MoneySet > Money)) 
             f = 1; 
         if (f!=0) 
             { 
             gotoxy (15,2);cprintf ("        "); 
             gotoxy (15,2); 
             } 
         }while (f!=0);
    

    Die Eingabe soll überprüft werden, ist sie falsch, soll der Benutzer nochmals eingeben.
    Aber wenn ich eine Taste drücke, die keine Nummer ausgibt, bin ich in eine Endlos-Schleife. Ich will aber, dass nochmal neueingelesen wird.

    Und wenn wir schon dabei sind, kann man überprüfen, ob, wenn keine Zahl eingegeben wurde, ESCAPE gedrückt wurde.
    Ohne das ich ein string, bzw. char-Feld, einlesen muss und bei der Eingabe von Zahlen, das Programm mittels atoi in float umwandle. Also gleich beim Einlesen einer float-Variable, soll überprüft, ob ESCAPE gedrückt wurde.

    MfG



  • Also wenn du ein Spiel mit Grafiken usw. programmierne willst, dann empfehle ich dir die Bibliothek Allegro. Such einfach mal in google. Mit den gängigsten Compilern funktioniert die Bibliothek einwandfrei. Wenn du mehr drübere wissen willst, dann frag elise oder im Spiele- und Grafikforum.

    Zu deinem Fehler:
    Du solltest vor dem Einlesen der Eingabe den Tastaturpuffer leeren. Das geht mit fflush(stdin) recht gut.

    Zu deinem Problem mit ESC:
    Schau dir in der Konsolen FAQ mal die Beiträge zu kbhit() und getch() an, vielleicht kommst du dann drauf, wie du das am geschicktesten machst. Wenn nicht frag einfach nochmal nach ;).



  • für kleinere dinge, neben allegro
    http://www.talula.demon.co.uk/allegro/

    finde ich den djgpp noch super, zum bleistift mit folgender zusatzlibrary
    http://heliso.tripod.com/dosapis/graphic/graphic.htm

    und alte borländer sind auch nett..



  • Kann ich Allegro auch mit den Borland C++ 5.01 - Compiler benutzen??
    Auch wenn der Compiler auf ein Win32-Rechner läuft??

    Soll der Borland C++ 5.01-Compiler nun der richtigen sein um sehr klassische Konsolen-Spiele zu schreiben?

    Ich will kein Point&Click-Adventure schreiben, sondern noch was niedrigeres, lohnt sich da denn Allegro?

    Die Graphic-Bibliothek scheint ja ganz praktisch zu sein. Jetzt mal eine Frage, deren Antwort ich genau verstehen will:
    Was muss ich machen um die Bibliothek benutzen zu können (mit B. C++ 5.01)?



  • Beim Borland Compiler 5.01 kannst du auch die von Borland bereitgestellte Grafikbibliothek verwenden. Stichwort: graphics.h

    Ob Allegro allerdings mit dieser Version von Borland geht, weiß ich nicht. Auf jeden Fall geht Allegro mit dem Borland Compiler 5.5. Hab ich selber schon ausprobiert.



  • Kann ich mein Code von Borland 5.01 in Borland 5.5 kopieren und muss ich dennCode größenteils verändern, damit der Compiler ihn zulässt?

    Kann man sich den Compiler runterladen?

    Was kann man mit Allegro überhaupt machen?

    So das sind bestimmt die letzten Fragen. 🙂



  • Ob du den Quellcode problemlos kopieren kannst, kommt auf die Funktionen an, die du verwendest. Wenn du Funktionen drin hast, die sehr nah an der Hardware arbeiten, dann könntest du Schwierigkeiten haben. Ich bezweifle jedoch, dass das bei dir der Fall ist. Also denke ich, wird es eher keine Probleme geben.

    Ja den Compiler kannst du runterladen. Ist sogar kostenlos. Eventuell musst du dich aber bei Borland auf der Seite registrieren. Hier auf der Seite www.c-plusplus.net dürftest du sogar den Link auf den Borland Compiler 5.5 finden. Der einzige Nachteil dabei ist, dass er keine IDE (grafische Programmieroberfläche) besitzt. Es gibt aber auch kostenlose IDE im Netz zum Runterladen. Ich hab z. B. VIDE benutzt.

    Mit Allegro kannst du einiges machen. Eigentlich alles was du für Spiele brauchst: grafische Ausgabe (auch von .bmp usw.), akustische Ausgabe, Tastatureingaben, Eingabe über die Maus und ich glaub es werden sogar Joysticks unterstützt (also der sog. Gameport). Mehr fällt mir momentan nicht ein. Such in google einfach mal nach allegro, da findest du dann die Seite dazu. Dort steht dann auch genauer was allegro alles kann.

    Ich hoffe du kannst englisch.

    Das waren bestimmt noch nicht die letzten Fragen, denn das Installieren der ganzen Sachen und die Konfiguration ist ein Thema für sich. Man braucht etwas Geduld und viel Zeit zum Lesen. Aja und habe ich schon erwähnt, dass man englisch können muss? 😉

    Wenn du Probleme hast, dann frag einfach nochmal nach. Ein paar hier im Forum haben das ganze schon mal gemacht und ich glaub es gibt auch in den FAQs schon Beiträge dazu.

    Viel Erfolg!



  • auf borland.com finde ich nur ein Borland C++ Builder 5.5 ich dachte aber nicht an eine Art Builder. Sondern an eine Erweiterung von Borland 5.01.
    Runterladen werde ich mir den Compiler lieber bei jemand der schnelleres Internet hat.

    Mein Lehrer meint Borland C++ 5.01 funktioniert nicht richtig, weil diese Compiler nicht für Win32 geeignet sind, deshalb funktionieren Bibliotheken, wie sound.h u.a. nicht.
    Hier steht : "reinen Kommandozeilencompiler ohne IDE, der aber auch Win32-Programme übersetzen kann", heißt das, dass dieser Compiler für WIN32 geeignet ist?

    Warum funktioniert Borland C++ 5.01 bei jemanden (Name tut nichts zu Sache) vollständig (mit allen Bibliotheken), obwohl er XP benutzt?



  • Dass die Aussage deines Lehrers richtig ist, möchte ich bezweifeln. Ich verwendete mal den Borland Compiler 5.02 und dieser war mit einer Windows (Win32) Oberfläche ausgestattet. Ich schätze mal, dass es beim 5.01 nicht anders ist. Sogar die 4er Version hatte schon eine Windowsoberfläche.
    Darum funktioniert es auch bei deinem Bekannten. WinXP unterstützt normalerweise auch alte Programme. Es hat nur Probleme, wenn ein Programm versucht direkt auf die Hardware zuzugreifen.
    Vielleicht meint aber auch dein Lehrer, dass es Probleme bei den Programmen gibt. Das ist allerdings auch nur der Fall, wenn du 16Bit-Anwendungen schreibst. Mit dem Borland Compiler deiner Version kannst du aber auch 32Bit-Anwendungen schreiben und da sollte es keine Probleme geben, außer natürlich du verwendest Funktionen, die direkt auf die Hardware zugreifen und möchtest das Programm z. B. unter WinXP ausführen.

    Wenn dabei steht, dass der Compiler auch Win32-Programme übersetzen kann, dann geh ich mal davon aus, dass er es auch kann ;).

    Wenn du den Compiler auf Borland nicht direkt findest, dann gib einfach mal in google Borland Compiler 5.5 ein, dann solltest du auch auf den richtigen Link stoßen. Evtl. musst du aber ein wenig länger suchen.



  • Also die sound.h-Bibliothek funktioniert nicht.
    sound() erstellt Speakertöne -> ist bestimmt Hardware übergreifend.

    Und kann man mit Borland C++ 5.5 Speakertöne erstellen?



  • Was heißt sound.h funktioniert nicht? Bringt der Compiler bereits eine Fehlermeldung beim compilieren (wenn ja welche?) oder macht der Speaker keinen Mucks?

    Auf deine 2. Frage antworte ich jetzt mal mit ja. Wobei man aber immer bedenken muss, wie der Speaker im Quellcode angesprochen wird und welches Betriebssystem man verwendet!

    Es gibt übrigens auch die Includedatei dos.h. Dort gibt es auch eine Funktion namens sound() und ein Gegenstück (ich glaube unsound()). Die erste Funktion gibt eine bestimmte Frequenz über den Speaker aus solange bis unsound() aufgerufen wird. Möglicherweise ist das aber nur unter DOS verfügbar, d. h. unter Windows wirst du evtl. nichts hören vom Speaker. Wenn du es findest, dann probier es einfach mal aus ;).



  • Sorry, dos.h die meinte ich, nicht sound.h (so ein schmarn), geht aber trotzdem nicht (nicht bei mir zu Hause, weder auf Win98 oder 2000. noch in der Schule auf NT4, bzw. in meiner WG: 2000Server).

    Also ich binde dos.h ein, akzeptiert er auch, aber die Befehle, die unter der Headerfile jetzt erkannt werden sollten, erkennt er nicht (sound(), delay(), nosound()). Unbekannter Befehl, heißt die Meldung ungefähr.
    Da meinte meine Lehrer: "weil das Win32 ist und kein DOS"
    Ich gehe davon aus, dass meine Kollege ein DOS-Emulator hat oder so.



  • Aja. Ja da hat er theoretisch recht. Es liegt allerdings daran, dass du dein Projekt als Win32-exe eingestellt hast. Wenn du dein Projekt als 16Bit-exe einstellst, dann dürften auch die Funktionen zur Verfügung stehen.

    Wie man das einstellt weißt du ja, oder? *hoff*



  • Es war kein Projekt.

    Da gibt es nur eins, ➡ Compiler-Forum!

    P.S. http://www.borland.com./products/downloads/download_cbuilder.html --> ist das der Borland C++ 5.5 Compiler, Warum steht der denn unter Builder, ich will kein Builder.



  • Ich weiß auch nicht warum die das unter Builder liegen haben. Wahrscheinlich weil sie heutzutage alle ihre Compiler als Builder bezeichnen. Aber das ist schon der richtige Compiler :).

    Du hast also kein Projekt angelegt beim Borland? Dann könnte es sein, dass er standardmäßig von einem win32-Programm ausgeht. Was ist, wenn du ein Projekt anlegst und dort auf eine 16Bit-Anwendung umstellst?



  • Also, wenn ich unter Umgebung (Standard: Win32) 16 Bit einstelle, gehts immer noch nicht, aber wenn ich Standard-DOS einstelle, funktioniert die DOS-Bibliothek. Dafür hab ich so bei anderen Dingen Schwierigkeiten bekommen. 😞

    Ich glaube, es wäre ganz gut, wenn ich den Borland 5.5 benutze.

    Was ist eigentlich ein Resourcen-Projekt?
    Dort kann ich 16 Farben-Bitmaps erstellen und auch verschieden Mauszeiger, sowie Icons, aber ich habe nicht herrausgefunden, wie man die verwendet, falls sowas überhaupt geht.
    Kann man der exe-Datei ein Icon-Symbol geben?
    Oder auch ohne Allegro Bitmaps-Bilder ausgeben lassen?
    Habe sonst keine Ahnung warum man solche Dinge erstellen kann.
    Warum kann man ein Mauszeiger erstellen? Man kann doch unter DOS/Konsole gar keine Maus benutzen 😕



  • Ok, fangen wir mal bei der 1. Frage an:

    "Resourcen" werden in Windows benötigt um bestimmte anzeigbare Dinge zu speichern. Wenn du z. B. ein Programm schreibst mit einem Fenster, also mit Buttons usw. dann werden die Informationen, die das Aussehen des Fensters bestimmen nicht im Quellcode hinterlegt, sondern in einer sog. Resourcedatei (.res). Wie man diese allerdings dann im Programm explicit ansprechen kann, weiß ich leider nicht. 😞

    Ja du kannst einer EXE-Datei ein Icon geben. Wie weiß ich hier leider auch nicht, aber ich kann mir vorstellen, dass sie das im WinAPI-Forum wissen. Oder du stellst es manuell im Explorer ein ;).

    Ja man kann auch ohne Allegro Bitmaps ausgeben. Allerdings brauchst du dann trotzdem eine Bibliothek dazu (musst du hald im Netz suchen). Bei Allegro ist hald noch ein wenig mehr dabei als nur Bitmaps ausgeben ;).

    Warum man einen Mauszeiger erstellen kann, muss ich dir bestimmt nicht erklären ;). Man kann auch unter DOS/Konsole mit der Maus arbeiten, man braucht nur den passenden Treiber dazu und man muss die Maus aktivieren und deren gelieferten Informationen auch verarbeiten.



  • AJ schrieb:

    Oder du stellst es manuell im Explorer ein ;).

    funktioniert aber nur mit gelinkten Dateien 😞



  • Ist das der VIDE, den ich mir runterladen muss?
    http://www.objectcentral.com/



  • Ja das ist genau der VIDE, den ich meinte :).



  • dem link zufolge:

    3. spalte nach unten, da steht "compiler ... version: 5.5 ... 8.7 MB ...

    das ist genau der, den du brauchst. ich benutze den schon länger, läuft perfekt, sogar unter winXP pro.
    die downloadbare datei heisst freecommandlinetools.exe, lass dich davon nicht abschrecken, ist schon der richtige compiler. 🙂

    wenn ich das aber richtig verstanden habe, kann man damit nur win32 programme compilen, also nix DOS (falls das quatsch ist, bitte korrigiert mich!)

    ---loki


Anmelden zum Antworten