Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »
реклама
дизельные электростанции 60 кВт в контейнере

Почтовая рассылка

Подписчиков: 11697
Последний выпуск: 19.06.2015

Ресурсы в приложениях Windows

Автор: Виталий Рычков
Дата: 12 мая 2009 года

Характерной особенностью исполняемых модулей и динамических библиотек Windows является наличие в них так называемых ресурсов. Иконки, курсоры, диалоговые окна, меню, графические образы и текстовые таблицы, а так же информация о версии файла являются неотъемлемой частью большинства приложений с графическим интерфейсом для Windows. Как известно, исполняемый модуль состоит из заголовка файла PE-формата (Portable Executable) и нескольких секций, одна из которых является секцией ресурсов.

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

Если имя и тип ресурса в указанном модуле заранее известны, то этот ресурс можно найти с помощью функции FindResource или FindResourceEx. Если содержимое ресурсной части модуля заранее неизвестно, то можно получить список имеющихся в модуле ресурсов с помощью функций EnumResourceTypes и EnumResourceNames.

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

Для отдельных типов ресурсов предусмотрены специальные функции загрузки.

  • LoadString – загрузка текстовой строки,
  • LoadBitmap – загрузка растрового изображения,
  • LoadCursor – загрузка графического образа курсора мыши,
  • LoadIcon – загрузка образа пиктограммы (иконки),
  • LoadMenu – загрузка ресурса меню,
  • LoadAccelerators – загрузка таблицы «быстрых клавиш»,
  • LoadResource – загрузка прочих ресурсов.

Существует много программ, которые позволяют просматривать ресурсы в бинарных модулях и даже редактировать их. Редактор ресурсов, имеющийся в составе Visual C++, способен редактировать ресурсы как в исходных файлах проекта, так и внутри бинарных модулей. При этом можно экспортировать ресурсы из бинарного модуля в отдельные файлы на диск.

Я предлагаю познакомиться с небольшой программой моей собственной разработки, которая позволяет извлекать ресурсы из модулей Windows-приложений и динамических библиотек. Выглядит она так:

Эта программа извлекает ресурсы из бинарного модуля и сохраняет их на диске в виде отдельных файлов.

С помощью кнопки «Файл» программа через стандартный диалог Windows для выбора файлов загружает указанный бинарный модуль, чтобы получить список его ресурсов.

В списке ресурсов модуля указывается тип каждого ресурса, идентификатор ресурса и размер его данных.

При нажатии кнопки «Экспорт» создаётся отдельный каталог на диске, в который записываются файлы с данными соответствующих ресурсов.

Кроме этого программа позволяет посмотреть список имеющихся в модуле иконок. Это делается с помощью кнопки "Иконки" и стандартного диалога Windows для выбора значка.

Так же можно узнать информацию о текущей версии файла. Кнопка "Версия" вызывает окно диалога с данными о текущей версии модуля.

Загрузить приложение: GrabRes.zip [ZIP;60Кб]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
359
20 января 2009 года
KIV
432 / / 20.01.2009
Мне нравитсяМне не нравится
12 августа 2009, 21:01:34
Интерфейс приложения на мой взгляд лучше сделать в виде древа. И организовать предпросмотр ресурсов (с помощью LoadXXX).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог