Improved Console 4.0



  • SideWinder schrieb:

    Am Borland-Support wird gearbeitet, sollte soweit uach schon klappen, doch irgendwas versteht der Borland an HMODULE nicht.

    Welche Version des BCC verwendest du? Mit BCC 5.6.4 (C++Builder 6) und BCB 5.8.2 (C++Builder 2006) läßt sich die IC problem- und warnungslos übersetzen.

    Nur die "Mover"-Demo bedarf einer Änderung:

    #include <conio.h> // Für _getch()
    #include "ic.hpp" // Includieren der Improved Console
    using namespace ic; // Auflösen des Improved Console-Namespace
    using namespace ic::shorties; // Für die Verwendung von Shorties (Siehe unten)
    

    Bei Borland enthält die conio.h bereits eine Funktion namens gotoxy(), so daß eine Mehrdeutigkeit entsteht. Das Problem läßt sich lösen, wenn man entweder ::gotoxy() (conio.h) oder ic::shorties::gotoxy() (IC) verwendet.

    Btw, wie wäre es, wenn die IC eine Alternative zu getch() anbieten würde? 😉



  • Leute berichteten immer wieder, dass der Einsatz nicht möglich sei. Vielleicht haben sie aber auch nur Probleme mit dem Einbinden der IC 🙂

    Alternative zu getch() wäre ein ReadConsole()-InputStream ähnlich cout/cin mit strikter Typüberprüfung und einer RAW-Lesemöglichkeit. Das braucht Zeit und kommt frühestens nach meiner Matura. Wäre aber in der Tat eine Version 5.0 wert.

    In der sollen dann auch endlich mal "Multiple screen buffers" unterstützt werden.

    MfG SideWinder



  • SideWinder schrieb:

    Leute berichteten immer wieder, dass der Einsatz nicht möglich sei.

    Was für Leute waren das? Und von welchen Problemen berichteten sie?

    SideWinder schrieb:

    Alternative zu getch() wäre ein ReadConsole()-InputStream ähnlich cout/cin mit strikter Typüberprüfung und einer RAW-Lesemöglichkeit. Das braucht Zeit und kommt frühestens nach meiner Matura. Wäre aber in der Tat eine Version 5.0 wert.

    Möglicherweise wäre eine Implementation von getch() für dich interessant. Wenn bei Visual C++ der RTL-Quelltext mitgeliefert ist (bei Turbo C++ ist er das), schau doch dort mal rein.

    Aber schulische Abschlüsse gehen natürlich vor 😉



  • Ich habe dasselbe Problem, obwohl ich gar keine externen Verweise auf meine
    Funktionen habe.
    Das Problem hat also sicher nichts mit Falschinstallieren der SDK zu tun.
    Bei mir kommt das Problem wenn ich einen Funktionsaufruf
    so wie hier ---> merltris_highscores.newscore( punktestand);
    mache. Punktestand ist vom Typ int.



  • So, ich nochmal.
    Bei mir ist der Fehler jetzt weg.
    Habe einfach vergessen, die Funktionsdefinition für newscore zu
    implementieren 😃



  • Hallo,
    Ich hab da irgendwie ein fehler
    bei mir kommen folgende Fehler wenn ich es komplilieren will :
    [Linker error] undefined reference to ic::con' [Linker error] undefined reference toic::Console::setTextColor(ic::TextColor)'
    ld returned 1 exit status

    das ist mein source :

    #include <iostream>
    	#include "ic.hpp"
    	using namespace ic;
    	using namespace ic::shorties;
    	using namespace std;
    
    	int main ()
    	{
    	    textcolor(FG_RED);
    	    cout << "Hello World" << endl;
    	    return 0;
    	}
    

    danke !



  • Hast du die *.cpp-Datei der Improved Console auch zu deinem Projekt hinzugefügt? Mit welcher IDE arbeitest du?



  • Hallo zusammen,

    .. wollte mir gerade die Improved Console herunterladen und stelle fest das der Host down ist 😕 Google-Recherche liefert auch keine Mirror-Seiten .. ist das Projekt endgültig verloren, oder hab ich noch eine Chance das irgendwo her zu bekommen?

    Schöne Grüße



  • Gibt nur ein kleines Problem mit meinem Hoster. Ich hoffe das regelt sich noch heute, habe dort eine Vertragsänderung durchgeführt.

    MfG SideWinder



  • Einstweilen findet ihr hier die Seite: http://web56.hermes.server-pool.de/pages/ic.c-plusplus.net/index.php

    MfG SideWinder



  • Außerdem hoffe ich, dass ich im Juli dann auch endlich mal Zeit finde für IC 5.0

    MfG SideWinder



  • Hi.
    Ich bin zwar nicht sicher, ob die Frage "wirklich" hier rein gehört, aber:

    ich raff einfach nicht, wie das mit dem Fullscreen-mode (oder doch One-Screen-Mode?) gemacht wird..
    Aus der Codevervollständigung von DEVC++ werde ich leider nicht schlauch,
    da hab ich nur "Varibale SETCONSOLEDISPLAYMODE SetConsoleDisplayMode" drin stehen.
    Würde halt gerne die Fenstergröße auf eine feste Größe einstellen..
    Aber wie genau das jetzt eingesetzt wird verstehe ich nicht...
    Hab auch schon sicher ne Halbe Stunde nach nem Beispielcode gesucht, der das bentutz, bin aber jedes mal wieder hier gelandet... *schnaub*



  • Und ich raff einfach nicht, wie ich di IC entpacken kann. Bei mir ist keine zip-datei vorhanden. *grins*



  • Ich habe eine kleine Wishlist für IC5.0:

    - Unicodesupport! Ich will das deutsche Umlaute und ggf. andere schön dargestellt werden.
    Hier steht wies geht:
    http://c-plusplus.net/forum/viewtopic-var-t-is-193737.html

    - Eigene getch-Methode. Nicht alle haben Borland 😃
    - Abkehr von C++ IO-Streams. Die sind nicht für Unicode ausgelegt.
    - schönerer code 😃



  • achja, mit schönerem code meinte ich sowas:
    Statt

    void Console::enableWndBufMode ()
    

    soll

    void console::enable_window_buffer_mode (void)
    

    oder statt

    SetConsoleDisplayMode(hConsoleOutput,CONSOLE_WINDOWED_MODE,&newScreenBufferDimensions);
    

    sollte

    SetConsoleDisplayMode (hConsoleOutput, CONSOLE_WINDOWED_MODE, &newScreenBufferDimensions);
    

    werden. In jeder normalen Sprache (z. B. Englisch, Deutsch usw.) wird auch hinter einem Komma ein Leerschritt gesetzt. Auch in Foren ist es besser für Zeilenumbrüche wenn der Code zu lang wird 😉

    Ist erheblich schöner im aussehen und leichter zu lesen, als so cryptischer kram. sind ja nicht mehr im Jahre 1988 😉

    Würde mir auch Rückgabewerte wünschen!



  • hallo, bräuchte mal eure hilfe. hab MVS C++ express, SDK installiert aber wenn ich jetzt einen einfachen code wie diesen hier:

    #include <iostream>
    #include "ic.hpp"
    using namespace std;
    using namespace ic::shorties;
    using namespace ic;
    
    int main()
    {
    	textcolor(FG_RED);
    	return 0;
    }
    

    kompilieren will kommen folgende Fehlermeldungen:

    1>ic.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ShowWindow@8" in Funktion ""public: void __thiscall ic::Console::hide(void)" (?hide@Console@ic@@QAEXXZ)".

    1>ic.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetWindowRect@8" in Funktion ""public: int __thiscall ic::Console::getWndPosX(void)const " (?getWndPosX@Console@ic@@QBEHXZ)".

    1>ic.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetWindowPos@28" in Funktion ""public: void __thiscall ic::Console::setWndPos(int,int)" (?setWndPos@Console@ic@@QAEXHH@Z)".

    und daraus werd ich net schlau, ic.hpp & ic.cpp hab ich im projekt eingebunden.
    ich hoffe ihr könnt mir helfen



  • Benutz lieber ncurses. Das ist portabler und einfacher.
    www.gnu.org/software/ncurses



  • ncurses-Fan schrieb:

    Benutz lieber ncurses. Das ist portabler und einfacher.
    www.gnu.org/software/ncurses

    scheiss auf portabler! das hier ist das Forum "DOS und Win32-Konsole" was will man hier mit deinem Murks?



  • pdcurses!!! 😃



  • langeweile schrieb:

    pdcurses!!! 😃

    jo, noch mehr murks, wenn man sich den Quellcode allein schon ansieht, bekommt man einen Lachkrampf und kann eigentlich nur noch den Kopfschütteln...

    Absolut schlechter Code, schlecht Kommentiert, Buggy (Kein wunder bei Frickelcode und globalen Variablen) und man soll für seine Konsolenanwendung noch was extra dazulinken von Dritten und ggf. eine DLL von Dritten mitliefern?

    Erbärmlich...


Anmelden zum Antworten