【问题标题】:How does ebook to exe application compile to self-contained executable?ebook to exe 应用程序如何编译成独立的可执行文件?
【发布时间】:2009-06-18 06:05:39
【问题描述】:

我试图了解当您运行 exe 时,各种电子书应用程序如何将它们的输出编译成一个独立的可执行文件,没有依赖关系。 怎么做到呢?他们使用真正的嵌入式编译器吗?

【问题讨论】:

    标签: compiler-construction exe


    【解决方案1】:

    电子书应用程序可能会创建一个带有集成网络浏览器的应用程序。该应用程序将被预编译,唯一缺少的将是 html 内容。这将作为资源添加。不需要完整的编译器。只需将资源添加到现有的可执行文件。

    请参阅article,了解如何将 html 页面添加到资源 dll 中。 Resource hacker 是一个可以从任何可执行文件中提取/替换资源的实用程序。不需要编译器来执行此操作。

    【讨论】:

    • 它很可能是一个 CHM(Microsoft 帮助)文件,可以轻松地嵌入到资源中,然后使用 Microsoft 帮助查看器进行浏览,该查看器应该安装在每台 Windows 机器上。我见过的大多数 HTML 电子书都是 CHM 格式的,因为它是独立的。
    【解决方案2】:

    许多存档器 sfx 模块使用的最简单的方法是预编译存根,然后将创建的信息附加到这个存根(在您的情况下是编译的电子书)。然后,当执行 exe 时,检测信息块的开始(例如带有一些预定义的字节序列)并提取信息以供播放。

    您甚至可以在您的 exe 中嵌入外部引用,例如某些工具,包括 .dll 文件作为资源,在运行时将其提取到临时文件夹,然后从那里加载。

    当然还有更复杂的方法可以将信息嵌入到现有的可执行文件中,例如 WinNT 上的 BeginUpdateResource - UpdateResource - EndUpdateResource 序列是另一种将信息嵌入到可执行文件(作为资源)中的方法。

    【讨论】:

      【解决方案3】:

      它们只是在可执行文件中包含与电子书数据本身配对的电子书加载器/查看器。

      有很多方法可以做到这一点,首先你应该了解二进制文件是否真的没有依赖关系,或者它是否搜索库(例如 acrobat 库),然后你可以编写一个查看器,直接从基于矢量的视图(较小)或基于图像的视图(如没有文本被 ocr-ed 的 pdf)中的二进制文件

      我假设您说的是 pdf 电子书。对于其他所有格式,想法保持不变:将电子书数据与查看器配对

      【讨论】:

      • 嗨,它不是 pdf 电子书,它的 exe 文件是从 htmls 创建的,没有它没有依赖项,我确实把它带到了没有 htmls 的不同电脑上,比如 Activ E-Book Compiler
      • 正如我之前所说,您用于存储电子书的格式(如您所说的例如 html)不会改变您解决此问题的方式:您只需将数据与查看器一起插入应该能够在没有任何外部依赖的情况下正确呈现电子书(除了正常的,例如:html)。
      【解决方案4】:

      电子书 exe 应用程序可能会将您的电子书放在 .exe 中的资源中,并尝试使用 pdf activex 的嵌入式网络浏览器来加载电子书。

      【讨论】:

        猜你喜欢
        • 2012-08-01
        • 1970-01-01
        • 2020-03-16
        • 2011-01-03
        • 2012-07-03
        • 1970-01-01
        • 1970-01-01
        • 2014-04-24
        • 1970-01-01
        相关资源
        最近更新 更多