[Anfänger] Logo für exe Datei



  • Hallo,

    ich hab mal etwas rumprobiert und mir ein schönes kleines Programm geschrieben. Da Programm an sich passt, ich würd nur gern wissen ob ich dazu auch ein Logo einbinden kann.

    Also ich stells mir einfach so vor, dass die erstellte .exe Datei automatisch ein Logo bekommt das ich erstellt habe.
    Geht das irgendwie? Und hoffentlich is das nicht allzu kompliziert.

    Danke für eure Hilfe



  • Zuerst mal musst du ein Logo erstellen (ico Format). Dies kannst du mit GIMP oder anderen Programmen erledigen (Ich benutze ICOfx). Dann musst du eine Resource anlegen (rc datei) in der das folgende steht:

    5 ICON "Datei.ico"
    

    (Die zahl ganz vorne ist die ID. Diese muss nicht unbedingt 5 sein)
    Diese Resource musst du nun zum Programm dazu linken. Dies geht bei jedem Compiler etwas anders. Beim MinGW bspw. musst du die Resource mit dem windres-Tool in eine .o Datei umwandeln, und dann einfach bei den Source dateien mit angeben.

    P.S. Da dies Windows-spezifisch ist, und nicht direkt etwas mit C zu tun hat müsste das Thema eigentlich ins WinAPI Forum



  • Ich habe vor wenigen Tagen eine mögliche Lösung im C++-Forum gepostet. Wenn du Icons direkt in die Binärdatei einbinden kannst:

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

    GetModuleHandle(0) ist dabei etwas unschön, eine andere Lösung für Konsolenprogramme gibt es imho jedoch nicht.

    So ist das Icon während der Ausführung auch oben links im Fenster zu sehen 🤡 .

    Edit: cout ersetzt 🙂



  • Man muss das Logo nicht explizit setzen, das macht die Konsole von selbst.



  • Also ich verwende Visual Studio 2010.

    Ich hab keine Ahnung wie ich eine Resource erstelle. Ich weiß nur dass die in der art: irgendwas.h vorliegen muss.
    Kann ich da das irgenwie mit einbinden in der art, dass ich im Code so was schreibe, wo die logodatei ist

    [cpp]ich hab keine Ahnung wie da der Code aussehen könnte, evtl sowas wie
    #define logo = "C:logo.ico"
    oder so und das dann mit in die .exe datei eingebunden wird und automatisch das Logo anstelle des komischen Windows Symbols angezeigt wird.

    Elegant wärs halt wenn die Datei ihr logo "mitnehmen" könnte, sprich wenn ich die .exe an jemanden schicke, dass er dann auch das richtige Logo angezeigt bekommt.

    Ungefähr verständlich was ich mir vorstelle?
    Aber wahrscheinlich bin ich mit meinem Wissen Welten davon entfernt so was zu schaffen 🙂



  • Lade Dir ResEdit herunter. Das ist ein frei verfügbarer Ressourceneditor. Da ist auch ein kleiner Icon-Editor integriert. Mittels ResEdit erstellst Du Dir eine Ressourcendatei, zB. resource.rc. Dann erstellst Du eine Icon-Ressource, malst Dir ein Icon. Die erstellte Ressourcedatei fügst Du dann Deinem Projekt in VS 2010 an der richtigen Stelle hinzu, da gibt es extra einen Ordner für Ressourcen.
    Den Rest erledigt VS für Dich.



  • Belli schrieb:

    Lade Dir ResEdit herunter. Das ist ein frei verfügbarer Ressourceneditor. Da ist auch ein kleiner Icon-Editor integriert. Mittels ResEdit erstellst Du Dir eine Ressourcendatei, zB. resource.rc. Dann erstellst Du eine Icon-Ressource, malst Dir ein Icon. Die erstellte Ressourcedatei fügst Du dann Deinem Projekt in VS 2010 an der richtigen Stelle hinzu, da gibt es extra einen Ordner für Ressourcen.
    Den Rest erledigt VS für Dich.

    Hallo, danke für den Tip. Ich hab jetzt mit ResEdit ein Icon gemacht. dazu hab ich eine icon.h und eine icon.rc dabei bekommen.
    Die icon.h hab ich mal in den gleichen Ordner kopiert, indem die windows.h usw liegt.

    Wie füge ich denn die Ressourcendatei jetzt an der richtigen Stelle hinzu? Und ist der Ordner für Ressourcen derjenige indem die windows.h ist?

    ich hab in meinem code jetzt nur mal #include <icon.h> hinzugefügt, es hat aber nix geändert.



  • chgTUM schrieb:

    Wie füge ich denn die Ressourcendatei jetzt an der richtigen Stelle hinzu? Und ist der Ordner für Ressourcen derjenige indem die windows.h ist?

    ich hab in meinem code jetzt nur mal #include <icon.h> hinzugefügt, es hat aber nix geändert.

    Datei -> Neu -> Projekt -> Leeres Projekt
    1. Rechtsklick auf "Quelldateien" -> hinzufügen -> neues Element -> main.c

    #include <stdio.h>
    #include "resource.h"
    
    int main()
    {
      printf("Hallo!\n");
      return 0;
    }
    

    2. Rechtsklick auf "Headerdateien" -> hinzufügen -> neues Element -> resource.h

    #define IDI_ICON 101
    

    3. Rechtsklick auf "Ressourcendateien" -> hinzufügen -> neues Element -> resource.rc

    #include "resource.h"
    IDI_ICON ICON "myicon.ico"
    

    4. Kompilieren.
    Die ICO-Datei "myicon.ico" muss sich im Projektordner befinden.

    5. Freuen
    6. Mir danken ? 😃



  • ok, Schritt 1 und 2 hab ich gemacht,
    beim Schritt 3 gehts irgendwie nicht weiter. Und zwar wenn ich die resource.rc anlege, dann hab ich kein Fenster wo ich das include und das IDI_ICON eingeben kann. Daher weiß ich nicht wie ich jetzt weiter machen soll.

    Wenn ich auf Ausführen klicke hab ich zudem einen Fehler in der Resource.h Datei mit "unexpected end of file found"

    Wenn du mir nochmal helfen könntest wärs super, dann kann ich auch zu Schritt 4 und 5 übergehen 🙂

    Edit:
    Passt, habs jetzt anders gelöst. Jetzt scheints zu funktionieren.

    --> bin grad übergegangen zu Schritt 4 😃
    Vielen Dank für eure Hilfe!


Anmelden zum Antworten