2009-04-02 43 views

Trả lời

158

Trước tiên, bạn cần tạo biểu tượng. Sau đó, bạn cần tạo một tệp RC có số trông giống như sau:

id ICON "path/to/my.ico" 

ID có thể có nhiều thứ. Nó không quan trọng trừ khi bạn muốn tham khảo nó trong mã của bạn. Sau đó chạy windres như sau:

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

Sau đó, bạn chỉ bao gồm my.res cùng với các tập tin đối tượng của bạn khi bạn liên kết, ví dụ .:

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

Và đó nên tất cả để có nó.


Và, mà không phải trả thêm, nếu bạn muốn bao gồm thông tin phiên bản trong ứng dụng của bạn, thêm bản mẫu sau để tập .rc của bạn và sửa đổi một cách thích hợp:

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 

Lưu ý, các langID dành cho tiếng Anh Anh (là địa phương gần nhất với Úc tôi có thể xác định.) Nếu bạn muốn "Tiếng Anh" của Hoa Kỳ, hãy thay đổi đường dây BLOCK thành:

BLOCK "040904E4" 

và dòng dịch để:

VALUE "Translation", 0x409, 1252 

Xem VERSIONINFO resource cho để biết.

+2

Sẽ là tuyệt vời nếu ví dụ cho thấy vị trí chèn dòng ICON. – chacham15

+0

Và ... thứ hai .. http://stackoverflow.com/questions/1411040/how-to-add-an-icon-to-an-application-built-with-eclipse-galileo-c-and-mingw –

+0

bạn cũng có thể bao gồm nhiều "Bản dịch" (nó chỉ cho Windows biết rằng chương trình này được dịch) bằng cách chỉ chắp thêm WORD, WORD-pairs, ví dụ: 'VALUE" Translation ", 0x409, 1252, 0x809, 1252' sẽ cho phép cả Hoa Kỳ và Anh Anh theo http://msdn.microsoft.com/vi-us/library/aa381058.aspx. Điều này cũng cho bạn biết rằng bạn có thể bao gồm nhiều hơn một 'BLOCK' lang04E4 "' – WorldSEnder

5

Trong tệp RC, nameID thậm chí không phải là tên, nó chỉ có thể là một số nguyên. Tên tệp chỉ được trích dẫn nếu có chứa khoảng trắng. Thay vào đó của:

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

Bạn có thể sử dụng:

windres my.rc my.o 
+1

Tôi không thể liên kết 'my.o' với MinGW's' g ++' sau 'windres my.rc my.o' (một số thông báo lỗi liên quan đến' WinMain'), nhưng 'windres my.rc -O coff -o Đường dẫn my.res' hoạt động tốt. –

Các vấn đề liên quan