Как добавить и использовать файлы .zip (или .pak) в проект c ++?

Я собираю CEF (Chromium Embedded Framework) для нашей локальной презентации html5.
Я должен сказать, что я очень новый для всего этого (CEF и C ++).

Я уже оптимизировал проект cefclient для презентации, но мне нужно встроить все файлы html / js / css / etc в проект (чтение из локального хранилища не вариант).
Как я понял, для встраивания нужно использовать файлы .zip или .pak (переименованный в zip). Но как я могу использовать их внутри проекта?
Должен ли я использовать некоторые библиотеки для разархивирования (zlib?) Или есть другой популярный способ? И как я могу быть уверен, что файлы будут скомпилированы в проект?

Извините за такие основные вопросы, но об этом очень мало информации (или Google меня сегодня ненавидит).

Спасибо за любую помощь!

UPD: нашел отличный инструмент — WBEA (http://asterclick.drclue.net/WBEA.html), похоже, что я хочу, но работает довольно медленно (с JS).

UPD 2: Оказывается, существует множество способов сделать настольное приложение HTML5, например, Node-Webkit.
Вот статья, которая сравнивает некоторые из них http://clintberry.com/2013/html5-apps-desktop-2013/

1

Решение

Тебе нужно:

  1. Создайте zip-файл с вашими ресурсами.
  2. Вставьте его как ресурс win32 (после этого шага вы получите правильный исполняемый файл с файлом .zip внутри).
  3. Создайте собственный обработчик схемы для доступа к этому zip-файлу.

Класс CefZipReader будет удобен для реализации обработчика из шага 3.

Оглянись вокруг, может быть что-то вроде того, что ты хочешь, уже где-то существует.

0

Другие решения

Это звучит очень похоже на самораспаковывающиеся установщики.

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

Пример Linux:

cat app magic_number data > new_app

Пример Windows:

copy app.exe /B + magic.dat /B + data.dat /B new_app.exe
0