Поместить ресурсы в DLL

Помечено: ,

  • В этой теме 0 ответов, 1 участник, последнее обновление 1 месяц, 1 неделя назад сделано Васильев Владимир Сергеевич.
Просмотр 0 веток ответов
  • Автор
    Сообщения
    • #6936
      @admin
      StudLance.ru

      В предыдущей статье мы рассмотрели как создать и подключить к своему проекту простейшую DLL. Динамические библиотеки можно заменять во время работы программы (на то они и динамические), за счет этого можно изменять функциональность.

      Однако, приложения состоят не только из кода, но и из ресурсов. Ресурсы часто помещают внутрь исполняемого файла — это почти исключает возможность удаления и замены файла пользователем; (2) ваше приложение поставляется в виде одного бинарника — это гораздо красивее чем набор из сотен файлов (это еще более актуально для мобильных систем — с Google Play скачивается один apk файл).

      Мы использовали файлы ресурсов например тут (в нем хранятся изображения, необходимые регулятору громкости) или тут (в ресурсы помещается справка по программе в html формате).

      Ресурсы тесно связаны с кодом — конкретному классу регулятора громкости нужны конкретные изображения. Если мы заменяем один регулятор на другой — то и ресурсы нужно заменить. Как производить безболезненную замену кода с помощью DLL мы разобрались, теперь поместим в DLL, связанные с кодом ресурсы.

      Создадим простую HTML страницу, для примера создайте страницу с одним изображением (в ресурс мы будем вставлять и изображение). Назовём этот файл index1.html. Ниже указано как мы будем получать доступ к изображению из html страници, HTML код выглядит следующим образом:

      <HTML>
         <HEAD>
            <TITLE>My HTML</TITLE>
         </HEAD>
         <BODY>
            This is a HTML in DLL<br>
            <img src="MYIMG" width=100 height=100 border=0 alt="">
         </BODY>
      </HTML>

      Создать новый текстовый файл (будущий файл ресурсов) в директории вашего проекта с расширением *.rc, назовем его например MyHTML.rc. После этого добавте следующие строки в файл MyHTML.rc:

      index1_html (23) "index1.html"
      MYIMG GIF "my.gif"

      Название ресурса должно совпадать с именем файла (браузер не понимает такого расширения файла), однако точку brcc не понимает — нужно поставить подчеркивание (позднее я обьясню что нужно делать с подчеркиванием).

      Для компиляции файла ресурса выполните следующую команду в директории Вашего проекта:
      BRCC32 MyHTML.RC

      Результатом выполнения команды будет собраный файл MyHTML.RES. Теперь заменим подчеркивание на точку в заголовке нашего собраного *.RES файла. Для этого нужно найти строку "i n d e x 1 _ h t m l", и заменить символ.

      для добавления собранного файла в ваш проект, добавьте следующую директиву компилятора в unit проекта:
      {$R MyHTML.RES}

      Далее собираем наш DLL. Чтобы запустить в браузере введите команду:
      res://c:\myhtml.dll/index1.html

      StudLance.ru

Просмотр 0 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.
×