【问题标题】:How to add and use .zip (or .pak) files to c++ project?如何在 c++ 项目中添加和使用 .zip(或 .pak)文件?
【发布时间】:2013-12-14 03:37:03
【问题描述】:

我正在为我们的本地 html5 演示文稿编译 CEF(Chromium 嵌入式框架)。 我应该说我对这一切都很陌生(CEF 和 C++)。

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

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

感谢您的帮助!

UPD:找到了很棒的工具 - WBEA (http://asterclick.drclue.net/WBEA.html),它看起来正是我想要的,但运行速度很慢(使用 JS)。

UPD 2:原来有很多方法可以制作 HTML5 桌面应用程序,例如 Node-Webkit。 这是一篇比较其中一些的文章http://clintberry.com/2013/html5-apps-desktop-2013/

【问题讨论】:

    标签: c++ zip embed chromium-embedded


    【解决方案1】:

    你需要:

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

    CefZipReader 类可以方便地实现步骤 3 中的处理程序。

    环顾四周,可能你想要的东西已经存在于某个地方。

    【讨论】:

    • 谢谢,真的很有帮助。很有趣,但这就是让我接触到许多 HTML5 桌面框架的方式。
    【解决方案2】:

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

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

    Linux 示例:

    cat app magic_number data > new_app
    

    示例窗口:

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

    【讨论】:

    • 非常感谢您的回答。您能否展示将它们连接在一起后如何在程序中读取文件? P.S.:我找到了 Enigma Virtual Box 工具,在这种情况下它是否有用,我仍然如何在打包后读取文件?
    • 我没有使用这个工具,SW 保护不在 m 范围内。我将展示一个简单的代码 sn-p 来读取这样的文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多