Что я хочу сделать, это программно обновить ресурсы исполняемого файла.Как связать файл скомпилированного ресурса (.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. Я понятия не имею, как это работает.
Я знаю, что могу обновлять ресурсы с помощью функции UpdateResource, передавая ему необработанные двоичные данные, но я надеялся, что смогу сделать это с файлом res так же, как они описаны в [этой статье] (http://msdn.microsoft .com/EN-US/библиотека/окно/настольный/ms648008% 2 = vs.85% 29.aspx). Но я думаю, что обработка каждого ресурса индивидуально - это путь. Тем не менее, файлы RES были бы легче редактировать. – Chris
Я не знаю, легче ли скомпилировать файлы RES, чем их исходные RC-скрипты. Какую настройку компилятора вы используете? – andlabs
@andlabs Это необычная установка. Файл сценария AHK скомпилирован с помощью компилятора AutoHotkey, который не поддерживает пользовательские ресурсы. Файл RES создается с очень крутым [редактором ресурсов] (http://melander.dk/reseditor/), который также может генерировать RC-скрипты. До сих пор мне удалось обновить растровые изображения с помощью функции UpdateResource, но значки немного сложнее. – Chris