Добавление, удаление и замена ресурсов

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

К примеру, для локализации приложения на английском языке для использования в Норвегии, он может потребоваться заменить английский диалогового окна с помощью Норвегии. Разработчик создает соответствующее диалоговое окно, используя диалоговое окно редактора или путем написания шаблон в файле определения ресурса. Затем разработчик выполняет перекомпиляцию всех связанных ресурсов и добавляет новые ресурсы в исполняемый файл приложения.

Если соответствующее диалоговое в двоичной форме, однако, разработчик может скопировать данные непосредственно в исполняемый файл локализации с помощью трех функций Win32. Функция BeginUpdateResource создает дескриптор обновление для исполняемого файла, ресурсы которого должны быть изменены. Функция UpdateResource использует этот дескриптор для добавления, удаления или замены ресурсов в исполняемом файле. EndUpdateResource функция закрывает ручки.

После создания дескриптора обновление в исполняемый файл путем BeginUpdateResourceприложение может использовать UpdateResource неоднократно вносить изменения в данные ресурсов. Каждый вызов UpdateResource способствует внутреннему списку добавления, удаления и замены, но на самом деле не записывает данные в исполняемый файл. Непосредственно перед закрытием дескриптора обновление, EndUpdateResource пишет значительных изменений к исполняемому файлу.

Иногда приложение необходимо копировать ресурсы или найти ресурс размеров. Функции LoadLibrary обеспечивает дескриптор модуля в исполняемый файл, ресурсы которого должны быть скопированы и функция LockResource предоставляет указатель на данные ресурса в указанном модуле. Функция SizeofResource возвращает размер, в байтах, указанного ресурса.

Index