gpt4 book ai didi

delphi - Deplhi 5 中的编译器指令 SETPEFlags

转载 作者:行者123 更新时间:2023-12-03 15:47:44 27 4
gpt4 key购买 nike

我有一个使用 Delphi 5.0 构建的应用程序,并且运行良好,没有任何问题。但是,当运行大型报告时,我的应用程序需要超过 2 Gb 的内存。经过分析发现,使用编译器指令 SETPEFlags 我们可以将 32 位应用程序内存增加到 4 GB。

我试图在 Delphi 5.0 中设置我的程序,但收到错误“无效的编译器指令”。有人可以建议任何方法来解决而不用在其他版本中重建应用程序。或者哪些版本添加到了 Delphi?

提前致谢。

最佳答案

您无法使用 Delphi 5 中的工具将您的应用程序标记为 Large Address Aware({$SetPEFlags} 是在 Delphi 6 中添加的)。您需要将该 PE 标志添加为构建后设置。设置该标志的常用方法是使用 Microsoft 的 editbin 工具。

一旦执行此操作,一旦您分配的内存超出 2GB 边界,您的程序就会停止工作。这是因为默认的 Borland 内存管理器不支持大地址。您需要将其替换为 FastMM 或其他支持 LAA 的内存管理器。或者,如果您愿意,您可以使用例如 HeapAlloc() 编写自己的替换内存管理器。

关于delphi - Deplhi 5 中的编译器指令 SETPEFlags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39538698/

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