是否可以运行大于 4GB 的 .exe?

Lou*_*eru 11 windows computer-architecture

我在 7-Zip 中创建了一个 >4GB 的 SFX 存档(自解压存档),没有任何警告。当收件人试图提取它时,他得到了这个错误丝带:

在此处输入图片说明

我发现这是因为.exe大于 4GB。安装 7-Zip 后,他能够解压缩存档,但我想知道为什么 Windows 不能运行这样的可执行文件?是否可以通过一些覆盖?

sah*_*pee 11

根据此线程,Windows 将不支持大小超过 4GB 的可执行文件:

http://sourceforge.net/p/sevenzip/discussion/45798/thread/337fc13e/

评论者“Igor Pavlov”是 7-Zip 的创建者和维护者。尽管该评论有些生硬,但sourceforge 论坛上还有其他主题重复了相同的建议。我不相信在 64 位操作系统上运行可执行文件会有什么不同,因为这很可能是 Windows 可执行文件大小的限制,即Windows PE 格式本身的限制。

文章写作64位程序提示:

Win64 文件的可执行“图像”(加载到内存中的代码/数据)的大小限制为 2GB。这是因为 AMD64/EM64T 处理器对大多数指令使用相对寻址,并且相对地址保存在一个双字中。一个双字只能保存 ±2GB 的相对值。

想必Igor已经想出了一个办法,用±2GB来达到4GB。