Improved Console 4.0



  • Marc++us schrieb:

    Side, muß Dich hier mal loben, ich wußte davon gar nichts, hab's per Zufall gesehen, die IC hat seit meinem ersten Minifundament ja mächtig zugelegt... gute Arbeit.

    Hört man natürlich gerne 🙂

    MfG SideWinder



  • Ich bilde mir ein, in den Weiten dieser Foren irgendwo gelesen zu haben, dass es mal eine Version der Improved Console gab, bei der man die Textcolor während der Ausgabe eines Strings ändern konnte. Stimmt das, oder habe ich mir das nur erträumt? Und wenn's stimmt, wo finde ich das?

    EDIT: Und bevor mich jemand auf die Suchfunktion des Forums verweist: Habe ich mehrfach probiert aber nichts gefunden. Entweder bin ich zu blöd für die Suchfunktion (glaub' i obah net), oder die Suchfunktion kann Beiträge für "Improved Console" nicht finden, wenn man als Suchbegriff "console" eingibt. Nicht einmal dieser Threat hier wurde gefunden. 😮



  • Wie meinst du das genau? Du kannst doch einfach die Ausgabe des Strings zerteilen und währenddessen eine textcolor-anweisung einfügen?



  • Kevinus schrieb:

    Wie meinst du das genau?

    Wenn ich mich recht erinnere, hat da jemand eine kleine Funktion gebastelt, die man mit std::cout verwenden konnte. So in der Art wie:

    std::cout << Funktion(FG_YELLOW) << "Gelber Text gefolgt von " << Funktion(FG_BLUE) << "blauem Text";
    

    Kevinus schrieb:

    Du kannst doch einfach die Ausgabe des Strings zerteilen und währenddessen eine textcolor-anweisung einfügen?

    Ja, schon. Aber wenn man eine Bildschirm-Maske mit vielen Farbwechseln bauen will, wird der Quellcode sehr schnell unnötig lang und unübersichtlich.

    textcolor(FG_YELLOW);
    std::cout << "Gelber Text gefolgt von ";
    textcolor(FG_BLUE);
    std::cout << "blauem Text";
    


  • Hab's gefunden! Allerdings nicht über die Suchfunktion des Forums (die mag mich anscheinend nicht 😉 ), sondern durch manuelles Suchen. Egal, Hauptsache ich hab's jetzt. 🙂



  • Proximo schrieb:

    Ich hab ebenfalls folgendes bekommen:

    Fehler	1	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)".	ic.obj
    
    Fehler	2	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)".	ic.obj
    
    Fehler	3	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)".	ic.obj
    

    Gibt es da schon eine Lösung?

    SDK installiert, beide Quelldateien geladen, main.cpp mit folgendem Inhalt:

    #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;
    	}
    

    Ich hoffe auf eine Antwort.

    MFG Proximo

    HI,
    ich hab genau das selbe Problem, hab auch VC++ EE und Plattform SDK nachhttp://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html installiert.

    Wisst ihr, woran das liegt? Muss ich noch irgendwas einstellen?



  • Dann hast du die Einbindung des Platform SDK noch nicht 100% hinbekommen. Hier fehlen eindeutig die zu linkenden Bibliotheken.

    MfG SideWinder



  • Es funktioniert jetzt, hatte zuvor Win32 Konsolenprojekt begonnen, das funktionierte nicht.
    Wenn ich jedoch einfach ein leeres Projekt starte, klappt alles bestens. Weiß jmd woran das liegt? Hatte eigentlich gedacht Win32 wäre für die Konsole der richtige Anwendungstyp!?



  • Der richtige Projekttyp ist "Win32-Konsolenanwendung"

    MfG SideWinder



  • ja, das hatte ich auch genommen, funktionierte aber nicht. Es funktioniert (zumindest jetzt) nur bei einem leeren Projekt...



  • 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


Anmelden zum Antworten