我会解释我想要什么,然后我会解释我是如何努力实现它的。我想知道我是否以正确的方式解决这个问题,或者是否有更容易的事情。
我想要的是:一个发生在 ALSO 上的自解压可执行文件还有一个额外的入口点(这使得可执行文件可以像 DLL 一样适当地使用)。附加入口点不能是压缩负载的一部分。奇怪的是,入口点不会执行任何 LZMA 函数(请不要问为什么……长篇大论)。仅供参考:使用 DLL 入口点制作可执行文件是一件小事——我已经知道该怎么做。
我是如何追求的:我已经下载了 LZMA SDK 并将构建我自己的 C++ 自解压器。似乎没有 LZMA API 文档。显然,如果我想学习如何使用 LZMA,我必须阅读 .\C\util\7z\7zmain.c 或 .\cpp\7zip\bundles\lzmaCon\lzmaAlone.cpp。我不知道学习这些是不是最快的学习工具。
创建自解压代码后,我将添加所需的 DLL 入口点并进行构建。生成的 EXE 自解压器我将与一个 zip 文件连接(一个 DOS 命令应该足以连接这两个文件)。这应该可以实现我的目标。
想法?
ps顺便说一句,我在这几年前已经完成了部分工作。我制作了一个自解压器(我认为是 C# 中的)可执行文件,然后我将其与一个 zip 文件(通过 DOS 命令)连接起来。瞧,出现了一个自解压的 zip 可执行文件。使我目前的工作与众不同的是,我现在使用的是 C++,并且我需要这个额外的/任意的 DLL 入口点。