如何在.c ++项目中添加和使用.zip(或.pak)文件?

时间:2013-11-28 07:41:43

标签: c++ zip embed chromium-embedded

我正在为我们的本地html5演示文稿编译CEF(Chromium Embedded Framework)。 我应该说我对这一切都很新(CEF和C ++)。

我已经为演示文稿优化了cefclient项目,但我需要将所有html / js / css / etc文件嵌入到项目中(从本地存储中读取不是一个选项)。 据我所知,我应该使用.zip或.pak(重命名的zip)文件来嵌入。但是如何在项目中使用它们呢? 我应该使用一些lib进行解压缩(zlib?)还是有另一种流行方式?我怎样才能确定将文件编译成项目?

很抱歉这些基本问题,但关于此的信息非常少(或谷歌今天讨厌我)。

感谢您的帮助!

UPD:找到了很棒的工具 - WBEA(http://asterclick.drclue.net/WBEA.html),它看起来就像我想要的那样,但效果很慢(使用JS)。

UPD 2:事实证明,制作HTML5桌面应用程序有很多方法,例如Node-Webkit。 这篇文章比较了其中一些http://clintberry.com/2013/html5-apps-desktop-2013/

2 个答案:

答案 0 :(得分:0)

这听起来与自解压安装程序非常相似。

无需编译任何内容,只需将zip连接到可执行文件的末尾即可。您需要做的就是从可执行文件的开头找到运行时的偏移量。这可以通过编写一个大的幻数并稍后查找来轻松完成。

示例Linux:

cat app magic_number data > new_app

Windows示例:

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

答案 1 :(得分:0)

你需要:

  1. 在资源中创建zip文件。
  2. 将其作为win32资源嵌入(在此步骤之后,您将获得正确的可执行文件,其中包含.zip文件)。
  3. 创建自定义方案处理程序以访问此zip文件。
  4. CefZipReader类将从第3步实现处理程序。

    环顾四周,可能会像你想要的那样存在于某个地方。