【发布时间】:2012-01-03 10:00:07
【问题描述】:
我有一个编译和运行脚本的程序。
为了创建脚本的独立版本,我保留了一个大的静态缓冲区来保存已编译的脚本。编译后的脚本被复制到程序的副本中,然后可以从该副本运行。
这很好用。但它也有一些缺点:
- 缓冲区是静态的,如果没有编译则占用空间 里面的程序。
- 如果要包含的脚本超出缓冲区的大小,我需要构建一个具有更大缓冲区的新版本。
我想将编译后的脚本添加到程序的末尾,但天真地这样做是行不通的,因为 exe 加载器会阻塞新的文件大小。
有没有办法操作 exe 以便加载程序可以接受(注意这是一个跨平台程序)?
【问题讨论】:
-
您可以查看 7-zip 等程序如何创建自解压档案。也许您可以使用类似的方法来嵌入您的脚本?
-
我想您想在不重新编译解释器的情况下合并已编译的脚本,对吗?否则你可以通过修改你的构建系统来解决这个问题......
-
以上两位评论者都是中肯的。但是,我似乎找不到任何关于压缩程序如何做到这一点的例子。我希望能找到一些实用的源代码,省去剖析可执行映像的麻烦。
-
此外,我担心当我过于冗长时会出现 TL;DR... 程序本身 - 而不是脚本 - 是一个编译器/解释器,它运行以专有语言编写的脚本,适合我们公司的需求。我只提供编译器/解释器,但希望提供仅使用编译版本的可能性(编译版本是加密的)。