Czy w systemie Windows, używając gcc mingw, można określić, że wyjściowy plik exe ma pobierać plik ikony, aby plik exe był wyświetlany z tą ikoną w eksploratorze?
Czy w systemie Windows, używając gcc mingw, można określić, że wyjściowy plik exe ma pobierać plik ikony, aby plik exe był wyświetlany z tą ikoną w eksploratorze?
Odpowiedzi:
Najpierw musisz utworzyć ikonę. Następnie musisz utworzyć plik RC z poniższą zawartością. Tutaj nazwiemy to jako my.rc
.
id ICON "path/to/my.ico"
id
Wspomniano w powyższym poleceniu może być prawie wszystko. Nie ma to znaczenia, chyba że chcesz odwołać się do tego w swoim kodzie. Następnie uruchom wiatry w następujący sposób:
windres my.rc -O coff -o my.res
Następnie podczas budowania pliku wykonywalnego, wraz z innymi plikami obiektowymi i plikami zasobów, dołącz, my.res
które otrzymaliśmy z powyższego kroku. na przykład:
g++ -o my_app obj1.o obj2.o res1.res my.res
I to powinno być wszystko.
I bez dodatkowych opłat, jeśli chcesz dołączyć informacje o wersji do swojej aplikacji, dodaj następujący szablon do nowego .rc
pliku i wykonaj powyższe kroki.
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
Uwaga, langID dotyczy brytyjskiego angielskiego (który jest najbliższą lokalizacją Australii, jaką mogłem zidentyfikować). Jeśli chcesz, aby amerykański „angielski”, zmień BLOCK
wiersz na:
BLOCK "040904E4"
i wiersz tłumaczenia na:
VALUE "Translation", 0x409, 1252
Więcej informacji można znaleźć w zasobach VERSIONINFO .
VALUE "Translation", 0x409, 1252, 0x809, 1252
włączy zarówno angielski amerykański, jak i angielski zgodnie z msdn.microsoft.com/en-us/ biblioteka / aa381058.aspx . Oznacza to również, że możesz dołączyć więcej niż jeden 'BLOCK "lang04E4"'
IconsExtract
aby uzyskać ikonę osadzoną w exe
potrzebnym mi.
W pliku RC nazwaID nie musi być nawet nazwą, może to być po prostu liczba całkowita. Nazwa pliku musi być cytowana tylko wtedy, gdy zawiera spację. Zamiast:
windres my.rc -O coff -o my.res
Możesz użyć:
windres my.rc my.o
my.o
z MinGW g++
po windres my.rc my.o
(jakiś WinMain
związany z nim komunikat o błędzie), ale windres my.rc -O coff -o my.res
ścieżka działała dobrze.
.o
(= COFF automatycznie; nazywam to jak my.res.o
dla jasności) działa dla mnie. W rzeczywistości .res
pliki utworzone przez MSVC mają inny format, więc wydaje się, że jest dziwny / niezgodny przy użyciu COFF w.res
Wypróbuj Resource Hacker. Udało mi się skompilować mój projekt w systemie Linux (WSL) i wygenerować ikonę z logo na stronie głównej. Potrzebowałem tylko prostego sposobu na osadzenie go w exe i ten program działał świetnie. Resource Hacker autorstwa Angusa Johnsona