Farben verändern mit C++ im cmd Fenster



  • Hallo allemiteinander!

    Es tut mir im Voraus Leid, falls es das schon irgendwo gibt, aber ich bin neu in der C++ Branche und habe keine Ahnung wie ich es besser suchen bzw. beschreiben kann (Überschrift?) 🙂

    Ich möchte in meinem C++ Programm gerne:

    Hintergrundfarbe -> Blau

    Schriftfarbe -> Weiß machen.

    Doch ich weiß nicht wie der Code lautet geschweige den wo ich es einsetzen soll.
    Es soll auch später wenn man die Exe öffnet auf einem fremden Rechner die darstellung so darstellen!

    Kann mir jemand helfen bei diesem Problem?

    Danke! 😃

    MFG



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Welches Betriebssystem besitzt du ?



  • Aso! Muss man das auch wissen?

    Win7 Professional



  • Kommt darauf an ob du es Betriebssystem spezifisch machen darfst.
    Falls windows ausreicht kannst du
    https://github.com/CoreAPITeam/CoreAPI_build1.2.0.1
    ausprobieren.

    #include <iostream>
    #include <conio.h>
    
    #include "CoreAPI.h"
    
    int main()
    {
       core::CoreAPI inst;
       inst.SetBGColor(core::color::COLOR_BLUE);
       inst.SetFontColor(core::color::COLOR_WHITE);
    
       std::cout << "Output" << std::endl;
       _getch();
    }
    


  • Was meintest du genau mit:"Betriebssystem spezifisch machen darfst."?

    Wenn ich das Programm debbuge kommt dann diese Fehlermeldung:

    fatal error C1083: Datei (Include) kann nicht geöffnet werden: "CoreAPI.h": No such file or directory



  • 1. Du musst dir die beiden Dateien CoreAPI.h und CoreAPI.cpp runterladen und in den gleichen Ordner wie deine main.cpp Datei schieben.
    Dann bindest du beide Dateien in dein Projekt mit ein.

    2.CoreAPI.h enthälet den header Windows.h d.h. CoreAPI ist Windows spezifisch, da die Datei Windows.h z.B. standard-mäßig nicht auf z.B. Unix Systemen vorhanden ist.Kurz gesagt : wenn dein Programm nur auf Windows laufen muss, gibt es keine Probleme.



  • Er mekert nun:

    error C3083: "color": Das Symbol links neben "::" muss ein Typ sein.

    error C2589: 'Konstante': Ungültiges Token auf der rechten Seite von '::'

    Syntaxfehler: Es fehlt ')' vor '::'

    'core::CoreAPI::SetBGColor': Funktion akzeptiert keine 0 Argumente

    und noch viel mehr.



  • Ist das nicht viel für so eine simple (denke ich mal) Sache? 😕



  • Tut mir leid, hab was verwechseld

    #include <iostream>
    #include <conio.h>
    
    #include "CoreAPI.h"
    
    int main()
    {
       core::CoreAPI inst;
       inst.SetBGColor(COLOR_BLUE);
       inst.SetFontColor(COLOR_WHITE);
    
       std::cout << "Output" << std::endl;
       _getch();
    }
    


  • Ich hatte zwar viele Fehler, doch konnte sie auf wenige minimieren.

    Nun habe ich folgendes:

    coreapi.h(10) : error C2006: '#include': Dateinamen erwartet, aber 'Bezeichner' gefunden

    coreapi.h(10) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "": No such file or directory

    coreapi.h(10) : error C2006: '#include': Dateinamen erwartet, aber 'Bezeichner' gefunden

    coreapi.h(10) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "": No such file or directory

    Sind die letzten.



  • Dann hast du die beiden Dateien noch nicht dem Projekt hinzugefügt bzw. findet er die nicht an der erwarteten Stelle. Steht aber auch in der Fehlermeldung.



  • Tut mir Leid wenn ich dir auf die Nerven gehe, aber das mit dem hinzufügen musst du mir ggf. erklären.

    Ich habe die zwei Dateien die du als LINK gepostet hast genommen und in den selben Ordner wie die main.cpp gelegt.

    Danach habe ich C++ gestartet mein Projekt geöffnet und dann links an der Seite bei der "Headerdatei" rechts klick gemacht und "Vorhandenes Element" angeklickt.

    CoreAPI.h eingefügt und das gleiche mit der CoreAPI.cpp gemacht, abr bei "Queldatei".

    Vielleicht ist das nicht richtig wie ich es gemacht habe?! 😞



  • Hast die Dateien auch zum Projekt hinzugefügt?



  • Schau mal so sieht das aus:

    http://www.pic-upload.de/view-13229920/Test.jpg.html

    Es sieht so aus als ob es in einer Projektmappe ist, aber ob das stimmt?

    Falls nicht musst du mir das kurz erklären wie ich das mache. 🙂



  • Hab nicht deine Entwicklungsumgebung.
    Deshalb - welches Projekt/Projektmappe hast du gewählt?
    Der Rest sieht schon brauchbar aus.
    Nur welche Projektmappe?



  • Diese DV-Tool ist meine Projektmappe. Oder was meinst du genau?

    Ist das alles wirklich notwendig um nur 2 Farben zu verändern?



  • Gib mal in der Suche des Forums: Farbe auf Windows-Konsole oder ähnlich ein.
    Da solltest du Beispiele finden und auch ein paar ähnliche Projekte dem dir hier gezeigt wurde.

    MfG f.-th.



  • Vielleicht hast du ein falsches Projekt angefangen.
    Win32-Consolen Projekt brauchst du.

    Obwohl das eig. nicht sein kann.
    Du hast irgendwas mit den Pfaden und Dateien falsch gemacht.
    Hast du CoreAPI.h/.cpp geändert ?



  • #include <windows.h>
    
    #include <iostream>
    
    using namespace std;
    
    void ClearScreen(WORD attribute = 7)
    {
        CONSOLE_SCREEN_BUFFER_INFO csbi;
        COORD target = {0, 0};
        DWORD written;
    
        GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
        FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), ' ',
                                                csbi.dwSize.X * csbi.dwSize.Y,
                                                target, &written);
        FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE), attribute,
                                                csbi.dwSize.X * csbi.dwSize.Y,
                                                target, &written);
    }
    
    void DruckSimpleText(int x, int y, char const *text)
    {
        COORD target = {x, y};
        DWORD written;
    
        WriteConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), text,
                                                strlen(text),
                                                target, &written);
    }
    
    void SetCursorPosition(int x, int y)
    {
        COORD pos = {x, y};
    
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
    }
    
    int main()
    {
    	ClearScreen(FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN | BACKGROUND_BLUE);
    
    	SetCursorPosition(0, 0);
    
    	DruckSimpleText(5, 5, "Test - Ausgabe");
    }
    

Anmelden zum Antworten