Windowsでは、mingwのgccを使用して、出力exeファイルがアイコンファイルを取得するように指定して、exeファイルがエクスプローラーでそのアイコンとともに表示されるようにする方法はありますか?
Windowsでは、mingwのgccを使用して、出力exeファイルがアイコンファイルを取得するように指定して、exeファイルがエクスプローラーでそのアイコンとともに表示されるようにする方法はありますか?
回答:
最初にアイコンを作成する必要があります。次に、以下の内容のRCファイルを作成する必要があります。ここでは、という名前を付けますmy.rc
。
id ICON "path/to/my.ico"
id
上記のコマンドで言及はほとんど何もすることができます。コードで参照する場合を除いて、問題はありません。次に、次のようにwindresを実行します。
windres my.rc -O coff -o my.res
次に、実行可能ファイルをビルドするときに、他のオブジェクトファイルやリソースファイルとともにmy.res
、上記の手順で取得したものを含めます。例えば:
g++ -o my_app obj1.o obj2.o res1.res my.res
そして、それがすべてであるはずです。
また、追加料金なしで、アプリケーションにバージョン情報を含める場合は、次の定型文を新しい.rc
ファイルに追加し、上記の手順に従います。
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
langIDは英国英語用であることに注意してください(これは私が特定できるオーストラリアに最も近いローカリゼーションです)。米国の「英語」が必要な場合は、BLOCK
行を次のように変更します。
BLOCK "040904E4"
および次の翻訳行:
VALUE "Translation", 0x409, 1252
詳細については、VERSIONINFOリソースを参照してください。
VALUE "Translation", 0x409, 1252, 0x809, 1252
、msdn.microsoft.com / en-us /に従って米国と英国の両方の英語を有効にします。library /aa381058.aspx。これは、複数の「ブロック「lang04E4」」を含めることができることも示しています
IconsExtract
を使用して、exe
必要なアイコンを埋め込みました。
RCファイルでは、nameIDは名前である必要はなく、整数にすることもできます。ファイル名は、それはスペースが含まれている場合にのみ引用符で囲む必要があります。の代わりに:
windres my.rc -O coff -o my.res
次を使用できます。
windres my.rc my.o
my.o
とMinGWのg++
after windres my.rc my.o
(いくつかのWinMain
関連するエラーメッセージ)をリンクできませんでしたが、windres my.rc -O coff -o my.res
パスは正常に機能しました。
.o
(=自動的にCOFF。my.res.o
わかりやすくするために名前を付けます)は私に適しています。実際に.res
でCOFFを使用して/奇数互換性がないように思われるので、MSVCによって生成されたファイルとは、異なるフォーマットを持っている.res
ResourceHackerをお試しください。Linux(WSL)でプロジェクトをクロスコンパイルし、ホームページのロゴからアイコンを生成することができました。それをexeファイルに埋め込む簡単な方法が必要でしたが、このプログラムはうまく機能しました。 アンガスジョンソンによるリソースハッカー