2009-04-02 6 views

Antwort

158

Sie müssen zuerst das Symbol erstellen. Dann brauchen Sie eine RC-Datei zu erstellen, dass etwas wie folgt aussieht:

id ICON "path/to/my.ico" 

Die ID kann so ziemlich alles. Es spielt keine Rolle, wenn Sie in Ihrem Code auf verweisen möchten. Dann laufen windres wie folgt:

windres my.rc -O coff -o my.res 

dann nur Sie my.res zusammen mit Ihren Objektdatei enthalten, wenn Sie verknüpfen, z.B .:

g++ -o my_app obj1.o obj2.o my.res 

Und das sollte alles, was es ihm sein.


Und ohne Aufpreis, wenn Sie die Versionsinformationen in Ihrer Anwendung aufnehmen möchten, fügen Sie den folgenden Textvorschlag zu Ihrer .rc Datei und ändern entsprechend:

1 VERSIONINFO 
FILEVERSION  1,0,0,0 
PRODUCTVERSION 1,0,0,0 
BEGIN 
    BLOCK "StringFileInfo" 
    BEGIN 
    BLOCK "080904E4" 
    BEGIN 
     VALUE "CompanyName", "My Company Name" 
     VALUE "FileDescription", "My excellent application" 
     VALUE "FileVersion", "1.0" 
     VALUE "InternalName", "my_app" 
     VALUE "LegalCopyright", "My Name" 
     VALUE "OriginalFilename", "my_app.exe" 
     VALUE "ProductName", "My App" 
     VALUE "ProductVersion", "1.0" 
    END 
    END 
    BLOCK "VarFileInfo" 
    BEGIN 
    VALUE "Translation", 0x809, 1252 
    END 
END 

Hinweis, die SprachID ist für UK Englisch (das ist die nächstgelegene Lokalisierung zu Australien konnte ich identifizieren.) Wenn Sie US "Englisch" möchten, dann ändern Sie die BLOCK Zeile zu:

BLOCK "040904E4" 

und die Übersetzungszeile zu:

VALUE "Translation", 0x409, 1252 

Siehe VERSIONINFO resource für weitere Informationen ein.

+2

Es wäre großartig, wenn das Beispiel zeigt, wo die ICON-Zeile eingefügt werden soll. – chacham15

+0

Und ... zweitens .. http://stackoverflow.com/questions/1411040/how-to-add-an-icon-to-anapplication-built-with-eclipse-galileo-c-and-mingw –

+0

Sie können auch mehrere "Übersetzungen" hinzufügen (es wird nur Windows gesagt, dass dieses Programm übersetzt wird), indem Sie einfach WORD, WORD-Paare anhängen, zum Beispiel: 'VALUE" Translation ", 0x409, 1252, 0x809, 1252' würde sowohl US als auch aktivieren UK Englisch nach http://msdn.microsoft.com/de-de/library/aa381058.aspx. Dies sagt Ihnen auch, dass Sie mehr als einen "BLOCK" lang04E4 "" – WorldSEnder

5

In der RC-Datei muss die nameID nicht einmal ein Name sein, es kann einfach eine Ganzzahl sein. Der Dateiname darf nur zitiert werden, wenn er ein Leerzeichen enthält. Statt von:

windres my.rc -O coff -o my.res 

können Sie verwenden:

windres my.rc my.o 
+1

Ich konnte die 'my.o' nicht mit MinGWs' g ++ 'nach' windres my.rc my.o' verbinden (eine 'WinMain'-bezogene Fehlermeldung), aber die' windres my.rc -Ocoff -o my.res' Weg hat gut funktioniert. –