Deplhi 5中的编译器指令SETPEFlags

Nal*_*alu 3 delphi delphi-5

我有一个使用Delphi 5.0构建的应用程序,工作正常,没有任何问题.但是当运行大型报表时,我的应用程序需要超过2 Gb的内存.做分析后发现,使用Compiler指令SETPEFlags我们可以将32位应用程序内存增加到4 GB.

我试图在我的程序中设置Delphi 5.0,但得到错误"无效的编译器指令".有人可以建议任何解决方法,而无需重建其他版本的应用程序.或者那些被添加到Delphi的版本?

提前致谢.

Dav*_*nan 6

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

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