GCC в Windows: установить поле «Описание» исполняемого файла C?

Как установить свойство «Описание» исполняемого файла? Под этим я подразумеваю значение, отображаемое, когда вы щелкаете правой кнопкой мыши исполняемый файл в проводнике Windows, и оно показывает «Описание:» с тем, что кажется просто именем исполняемого файла без расширения файла.

Я использую GCC 3.4.5 (mingw-vista special r3) в Windows XP.

Я погуглил, черт возьми, безрезультатно, но у меня есть чувство, что мне, возможно, придется использовать файл ресурсов с windres ... Я по крайней мере на правильном пути?

На самом деле я задавал собственное имя с помощью -o, но на самом деле я хочу совсем другое.

Ответов (2)

Решение

Эта информация взята из ресурса информации о версии. Исполняемые файлы Windows могут содержать встроенные в них файлы ресурсов. Обычно в Microsoft Visual Studio вы создаете сценарий ресурса ( .rc файл), и компилятор ресурсов Visual Studio компилирует его в исполняемый файл за вас. VS также содержит удобный визуальный редактор ресурсов для редактирования различных типов ресурсов (строковые таблицы, значки, растровые изображения, курсоры, меню, диалоговые окна, информацию о версии и т. Д.).

При использовании GCC вам придется создать сценарий ресурса самостоятельно. См. MSDN для получения дополнительной информации о VERSIONINFO типе ресурса. После того, как вы создали допустимый сценарий ресурса, вы можете использовать windres для компиляции его в объектный файл ( .o ). На этой странице есть хороший пример того, как это сделать. Наконец, когда у вас есть объектный файл, вы просто связываете его с остальными объектными файлами, как обычно.

Да, вам нужен файл ресурсов.

  1. Для получения информации о написании собственного файла ресурсов .rc (включая ваше FileDescriptionполе) см .: MSDN: VERSIONINFO Resource

  2. Чтобы связать файл ресурсов с помощью gcc, см .: «Настройка значков [или любого ресурса для программ Windows с помощью gcc» :

Версии gcc для Windows (MinGW, Cygwin) поставляются с инструментом под названием «windres». Это скомпилирует файлы ресурсов в объектные файлы, которые вы сможете включить на этапе связывания. В качестве простого примера, чтобы скомпилировать файл chocolate-doom-res.rc:

windres chocolate-doom-res.rc chocolate-doom-res.o

Это дает вам «.o», который вы можете легко добавить в свою сборку, например.

gcc other.o files.o etc.o chocolate-doom-res.o -o chocolate-doom.exe