2009-04-02 6 views

Répondre

158

Vous devez d'abord créer l'icône. Ensuite, vous devez créer un fichier RC qui ressemble à quelque chose comme ceci:

id ICON "path/to/my.ico" 

L'ID peut à peu près tout. Ce n'est pas grave sauf si vous voulez faire référence à dans votre code. Ensuite, exécutez windres comme suit:

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

Ensuite, vous venez de comprendre my.res ainsi que vos fichiers objet lorsque vous liez, .: par exemple

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

Et cela devrait être tout ce qu'il ya à faire.


Et, sans frais supplémentaires, si vous souhaitez inclure des informations de version dans votre application , ajoutez la boilerplate suivante dans votre fichier .rc et modifier de façon appropriée:

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 

Note, le langID est pour l'anglais britannique (qui est la localisation la plus proche de Australie que je pourrais identifier.) Si vous voulez des Etats-Unis "anglais" alors changez la ligne BLOCK à:

BLOCK "040904E4" 

et la ligne de traduction:

VALUE "Translation", 0x409, 1252 

Voir VERSIONINFO resource pour plus d'infos.

+2

Ce serait génial si l'exemple indiquait où insérer la ligne ICON. – chacham15

+0

Et ... d'autre part .. http://stackoverflow.com/questions/1411040/how-to-add-an-icon-to-an-application-built-with-eclipse-galileo-c-and-mingw –

+0

vous pouvez également inclure plusieurs "Traductions" (il suffit de dire à Windows que ce programme est traduit) en ajoutant WORD, WORD-paires, par exemple: "VALUE" Traduction ", 0x409, 1252, 0x809, 1252' permettrait à la fois US et Anglais britannique selon http://msdn.microsoft.com/fr-fr/library/aa381058.aspx. Cela vous dit aussi que vous pouvez inclure plus d'un 'BLOCK' lang04E4 "' – WorldSEnder

5

Dans le fichier RC, le nameID n'a même pas besoin d'être un nom, il peut simplement être un nombre entier. Le nom de fichier ne doit être cité que s'il contient un espace. Au lieu de :

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

Vous pouvez utiliser:

windres my.rc my.o 
+1

Je ne pouvais pas lier 'my.o' avec' g ++' de MinGW après 'windres my.rc my.o' (un message d'erreur' WinMain'), mais 'windres my.rc -O coff -o Le chemin de my.res a bien fonctionné. –

Questions connexes