VS 2008 C++/WinAPI: Icon der .exe setzen?



  • Ich verwende Visual Studio 2008 Professional
    Ich habe ein normale Windowsanwendung ohne MFC erstellt

    Wie kann ich der Entwicklungsumgebung beibringen, das für die erzeugte .exe Datei ein bestimmtes Icon-File (*.ico) verwendet werden soll?



  • Du fügst dem Projekt eine rc Datei (ganz normale Textdatei) hinzu:

    resource.rc

    1 ICON "MeinIcon.ico"
    


  • cool danke für den Tipp - genau so gehts



  • wird immer das icon mit der niedrigsten id genommen?


  • Mod

    Es ist etwas trickreicher, ganz habe ich es auch nie verstanden (oder dokumentiert gefunden), denn Icons können auch echte Resourcenamen haben. Im Endeffekt ist es eine Art alphabetischer Sortierung.

    Ich nutze gerne einen Namen wie "!!FILEICON!!". Dieser ist nach meiner Erfahrungimmer das erste´Icon.



  • Wenn ich dies vesuche, kommt Folgender Fehler:
    error RC2135 : file not found: "PONG.ICO"
    Dabei habe ich pong.ico und pong.rc dem projekt hinzugefügt.
    die pong.rc Datei ist einfach:
    ICON "pong.ico"
    Was mache ich falsch?

    P.S.: ich verwende Visual C++ 2008 ohne MFC



  • Was du falshc machst?
    Wenn du ein Icon festlegst brauchst du wie bei allen Resourcen eine ID, den Typ und die Daten.

    Mit der ID kannst du deine Resource vom Programm aus ansprechen. Die ID kann ein String sein (etwa: MY_ICON ICON "icon.ico" -> du sprichst die Resource mit "MY_ICON" an)
    Der Typ ist klar, er gibt den Typ der Resource an: Icon, Bitmap, StringTable, Dialogfeld, etc. und die Daten sind in deinem Fall die ico-Datei.

    Du hast
    ICON "pong.ico"
    da fehlt die ID!
    Entweder du machst ganz einfach
    1 ICON "pong.ico"
    damit hätte dein Icon die ID 1

    ansonsten definierst du in "resource.h"
    #define IDI_ICON1 101
    und in resource.rc (nicht vergessen resource.h mit einzubinden)
    ICI_ICON1 ICON "pong.ico"
    Damit hätte dein Icon die ID nr. 101

    oder gaaaanz kurz: schreibe vor "ICON" eine 1 und ein Leerzeichen, damit es so aussieht: 1 ICON "pong.ico"


Anmelden zum Antworten