Wie Symbol C++ .exe anhängen?



  • Ich wollte mal einem kleinem Progrämchen ein Symbol hinzufügen.
    Ich habe schon gegoogelt, aber ich finde nichts womit ich klüger werde...

    LG In0cenT



  • Ich glaube du programmierst noch für die Konsole, also wird dies (meines Wissens) nicht oder nicht leicht möglich sein. Mit WINAPI kann man dies bei der Fensterinitialisierung leicht machen. Aber deinem vorherigen Post zu entnehmen solltest du erstmal die Grundlagen lernen bevor du dich mit fortgeschrittenem befasst.



  • Also villeicht habe ich mich ein bisschen undeutlich ausgedrückt.
    Wenn ich in den Release Ordner gehe und da die .exe anschaue. Ist das so ein weisses Symbol ich meine dieses, welches angezeigt wird auf dem Desktop.
    Dieses Zeichen ist immer 16 x 16 + 32 x 32 Pixel gross.

    LG In0cenT



  • Meinst du das Standardsymbol für Anwendungen? Das ist nicht in der Anwendung gespeichert, sondern wird von Windows bereit gestellt.



  • Du brauchst einfach eine Ressource-Datei, die Dein Icon enthält, die linkst Du dann zu Deiner Objektdatei hinzu. Dabei ist es egal, ob Dein Programm ein Konsolenprogramm oder ein GUI-Programm ist.
    Dies gilt natürlich so erst mal für Windows OS's.



  • Woher bekomme ich diese Resource Datei?
    BZW Wie macht man so eine Datei?

    LG In0cenT



  • http://www.tutorials.de/c-c/364565-c-icon-fuer-commandline-programm.html

    Ich denke das sollte dir weiter helfen. Wie man mit deiner IDE eine Ressourcen-Datei hinzufügt, überlasse ich mal deinem Spieltrieb.



  • Für Visual Studio:
    Einfach unter Project->Add new item->Resource->icon file ein neues Icon erstellen, ein klein wenig darin malen, per Project->Add existing item das Icon dem Projekt hinzufügen und in main() irgendwie so etwas schreiben:

    HICON hIcon = LoadIcon( GetModuleHandle(0), MAKEINTRESOURCE(IDI_ICON1));
    if(hIcon)
    {
    	PostMessage( GetConsoleWindow(), WM_SETICON, ICON_BIG,   reinterpret_cast<LPARAM>(hIcon));
    	PostMessage( GetConsoleWindow(), WM_SETICON, ICON_SMALL, reinterpret_cast<LPARAM>(hIcon));
    }
    else
    {
    	cout << "huch" << endl;
    }
    

    IDI_ICON1 ist dabei die Standardkonstante von Visual Studio. GetModuleHandle(0) ist dabei etwas unschön, eine andere Lösung ist mir gerade aber nicht eingefallen. In einem "echten" Windowsprogramm bekommt man den Instanzenzähler direkt in WinMain geliefert, für Konsolenprojekte ist das Einfügen eines Icons imho eher ungewöhnlich.



  • Vicious Falcon schrieb:

    in main() irgendwie so etwas schreiben:

    Das ist nicht erforderlich, wenn Dein Wunsch lediglich ist, daß die prog.exe - Datei im Dateiexplorer Dein Icon zeigen soll.
    Wenn während der Ausführung des Programms das Icon aber auch oben links in der Fensterleiste angezeigt werden soll, dann ist das so korrekt, wie Vicious Falcon schrob.



  • Ich habe Visual C++ 2008 Express Edition auf Deutsch und finde Resource nicht...

    Ich habe: Windows-Form, Komponentenklasse, Headerdatei, Eigenschaftenblatt, C++-Datei

    Was ist das richtige?

    LG In0cenT



  • Ich würde jetzt mal so ins Blaue raten, dass gibts bei dir nicht! Du kannst dich ja mal über die Beschränkungen der Express-Edition informieren.



  • In0cenT schrieb:

    Ich habe Visual C++ 2008 Express Edition auf Deutsch und finde Resource nicht...

    Ich habe: Windows-Form, Komponentenklasse, Headerdatei, Eigenschaftenblatt, C++-Datei

    Was ist das richtige?

    LG In0cenT

    Such im INet nach ResEdit. Das ist ein Ressourceneditor, mit dem Du auch Icons erstellen kannst. Damit erstellst Du eine Ressourcendatei, fügst die Ressource Icon hinzu, malst ein Icon.
    Die Ressourcendatei fügst Du dann Deinem Projekt hinzu.


Log in to reply