gpt4 book ai didi

c - 将数据附加到可执行文件(Windows、Unix)

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:40 24 4
gpt4 key购买 nike

我有一个编译和运行脚本的程序。

为了创建脚本的独立版本,我保留了一个大的静态缓冲区来保存编译后的脚本。编译后的脚本被复制到程序的副本中,然后可以从该副本运行。

这很好用。但是它有一些缺点:

  • 缓冲区是静态的,如果没有编译就会占用空间里面的程序。
  • 如果要包含的脚本超过缓冲区的大小,我需要构建一个具有更大缓冲区的新版本。

我想将编译后的脚本添加到程序的末尾,但天真地这样做是行不通的,因为 exe 加载程序会因新文件大小而受阻。

有没有一种方法可以操纵 exe,以便加载程序可以接受它(注意这是一个跨平台程序)?

最佳答案

would be acceptable for the loaders (mind this is a cross platform program)?

我认为如果不特定于平台,这不太可能实现。是时候使用具有不同实现的通用接口(interface)了(因此保存/加载脚本的代码是通用的,但可执行操作是特定的)。

在 Windows 上,您会遇到一个正在运行的可执行文件被锁定以防止修改的问题。通过处理副本可以解决这个问题(但以完全确定的方式重命名的唯一方法是在启动时执行移动,但安排作业可能是可以接受的)。

在 Windows 上,向图像(可执行文件或 dll)添加数据的最简单方法是使用资源。定义自定义资源类型并添加到图像中(UpdateResource 函数),稍后使用 LoadResource 检索.

关于c - 将数据附加到可执行文件(Windows、Unix),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8710477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com