- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 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/
我有一个使用 Delphi 5.0 构建的应用程序,并且运行良好,没有任何问题。但是,当运行大型报告时,我的应用程序需要超过 2 Gb 的内存。经过分析发现,使用编译器指令 SETPEFlags 我们
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE} 对 64 位 Delphi 应用程序有任何影响吗? 最佳答案 完全没有效果。所有 64 位进程都会自动判定为大
我是一名优秀的程序员,十分优秀!