1

Что я хочу сделать, это программно обновить ресурсы исполняемого файла.Как связать файл скомпилированного ресурса (.res) с исполняемым файлом

У меня есть двоичный ресурс (.res), содержащий растровые изображения, значки, информацию о версии и манифест, созданные с помощью resource editor и файл PE, скомпилированный с помощью AutoHotkey, на который я хочу скопировать ресурсы из файла .res ,

До сих пор я использовал это с помощью ResourceHacker в командной строке, но ResourceHacker нельзя перераспределять, и, кроме того, я хочу сделать это более элегантно.

Так что я смотрел в функции WinAPI и там, кажется, способ сделать это: http://msdn.microsoft.com/en-us/library/windows/desktop/ms648008%28v=vs.85%29.aspx
Но проблема в том, что в статье описывается, как скопировать ресурсы из исполняемого файла в другой, и вы не можете импортировать неисполняемые файлы (файл .res) с LoadLibrary/LoadLibraryEx.

Существует также способ сделать это с помощью инструментов Visual Studio, в частности LINK.exe. Но я не уверен, можно ли использовать его вне окружения VS. Я понятия не имею, как это работает.

ответ

2

Вы можете программно обновить ресурсы с UpdateResource function

RES файлы не участвуют. Файлы RES используются системой makefile проекта, чтобы обеспечить минимальную перестройку ресурсов ... их не нужно перекомпилировать каждый раз, когда приложение перенаправляется, просто встроено. Но вы не перетягиваете приложение и не теряете существующие ресурсы, поэтому обновлять ресурсы, которые вы хотите изменить, - это путь.

Если ваши исходные активы уже закодированы в файлах RES, то this page describing "Resource File Formats" может помочь вам извлечь их. В нем также описывается использование LINK.exe для встраивания ресурсов. LINK.exe установлен как часть Visual Studio, но также доступен во многих версиях Platform SDK и Windows DDK.

+0

Я знаю, что могу обновлять ресурсы с помощью функции UpdateResource, передавая ему необработанные двоичные данные, но я надеялся, что смогу сделать это с файлом res так же, как они описаны в [этой статье] (http://msdn.microsoft .com/EN-US/библиотека/окно/настольный/ms648008% 2 = vs.85% 29.aspx). Но я думаю, что обработка каждого ресурса индивидуально - это путь. Тем не менее, файлы RES были бы легче редактировать. – Chris

+0

Я не знаю, легче ли скомпилировать файлы RES, чем их исходные RC-скрипты. Какую настройку компилятора вы используете? – andlabs

+0

@andlabs Это необычная установка. Файл сценария AHK скомпилирован с помощью компилятора AutoHotkey, который не поддерживает пользовательские ресурсы. Файл RES создается с очень крутым [редактором ресурсов] (http://melander.dk/reseditor/), который также может генерировать RC-скрипты. До сих пор мне удалось обновить растровые изображения с помощью функции UpdateResource, но значки немного сложнее. – Chris

Смежные вопросы