Delphi 5在64位上出现内存错误

时间:2015-05-13 09:12:06

标签: delphi

我在Delphi 5中编写了一个程序,在我的Windows 8 32位PC上运行正常。我发现在我的Windows 7 64位笔记本电脑上运行它最终会导致重新分配错误,这在32位电脑上不会发生。我插入了以下

MS.dwLength := SizeOf(MemoryStatus);
GlobalMemoryStatus(MS);

在32位个人电脑上尺寸永远不会改变,但在64位笔记本电脑上它会波动,但随着时间的推移会变小。在64位计算机上运行32位Delphi 5是否有一些通用的机制可以实现这一点?

1 个答案:

答案 0 :(得分:2)

  

在64位计算机上运行32位Delphi 5是否有一些通用机制可以实现这一点?

如果您通过修改构建后的PE标记将应用程序标记为LARGEADDRESSAWARE,则可能会遇到问题,因为Borland内存管理器与地址> 2GB不兼容。

如果您的应用程序不是LARGEADDRESSAWARE,则没有明显的理由让它在64位计算机上失败而在32位计算机上失败。在这种情况下,最合理的解释并不比具有需要调试的缺陷的代码更平淡。