Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
Следующая версия
Следующая версия справа и слева
|
bbdevpackernohost [2013/12/16 21:35] kpmy добавил картинку |
bbdevpackernohost [2013/12/17 22:16] admin [Проблема.] |
| |
===== Проблема. ===== | ===== Проблема. ===== |
В эталоне Блэкбокса есть модуль DevPacker, он реализует функции упаковки в исполняемый файл произвольных ресурсов. Ресурсы размещаются внутри исполняемого файла по определенным правилам. Эти правила известны в модуле HostPackedFiles, который реализует фабрику Files.dir для работы с упакованными ранее файлами. | В эталоне BlackBox есть модуль DevPacker, используемый для упаковки в исполняемый файл произвольных ресурсов. Ресурсы размещаются внутри исполняемого файла по определенным правилам. Эти правила известны в модуле HostPackedFiles, который реализует фабрику Files.dir для работы с упакованными ранее файлами. |
| |
В процессе пересмотра внутренней структуры ББ в модуле DevPacker обнаружилась негерметичность. | В процессе пересмотра внутренней структуры BlackBox, в модуле DevPacker обнаружилась негерметичность. |
Она заключалась в прямой зависимости от HostFiles и HostPackedFiles. HostPackedFiles в свою очередь опирался на структуру данных, формируемую в DevPacker (имплицитная зависимоcть). | Она заключалась в прямой зависимости от HostFiles и HostPackedFiles. Кроме этого, HostPackedFiles опирался на структуру данных, формируемую в DevPacker (имплицитная зависимоcть). Негерметичность мешала использовать модуль в новой сборке ББ. |
Негерметичность мешала использовать модуль в новой сборке ББ. | |
| |
Для использования DevPacker в новой сборке ББ необходимо провести герметизацию модуля. | Для использования DevPacker в новой сборке ББ необходимо провести герметизацию модуля. |
| |
===== Адаптация к новым платформам ===== | ===== Адаптация к новым платформам ===== |
{{ :packed-replace.png?direct&200 |}} | {{ :packed-replace.png?direct&300 |}} |
Для реализации упаковщика под новую платформу, например, Linux, необходимо: описать константы платформы (см. PackedLinConst), реализовать модули записывателя (см. PackedSOWriter), и реализовать модуль PackedLinFiles, который возможно будет взаимодействовать с модулем-реализацией файловой системы в Linux-сборке ББ. Также необходим селектор платформы (см. PackedLinSelector) который позволит инициализировать подсистему для работы под Linux. | Для реализации упаковщика под новую платформу, например, Linux, необходимо: описать константы платформы (см. PackedLinConst), реализовать модули записывателя (см. PackedSOWriter), и реализовать модуль PackedLinFiles, который возможно будет взаимодействовать с модулем-реализацией файловой системы в Linux-сборке ББ. Также необходим селектор платформы (см. PackedLinSelector) который позволит инициализировать подсистему для работы под Linux. |