我在Delphi 5中编写了一个程序,在我的Windows 8 32位PC上运行正常。我发现在我的Windows 7 64位笔记本电脑上运行它最终会导致重新分配错误,这在32位电脑上不会发生。我插入了以下
MS.dwLength := SizeOf(MemoryStatus);
GlobalMemoryStatus(MS);
在32位个人电脑上尺寸永远不会改变,但在64位笔记本电脑上它会波动,但随着时间的推移会变小。在64位计算机上运行32位Delphi 5是否有一些通用的机制可以实现这一点?
答案 0 :(得分:2)
在64位计算机上运行32位Delphi 5是否有一些通用机制可以实现这一点?
如果您通过修改构建后的PE标记将应用程序标记为LARGEADDRESSAWARE
,则可能会遇到问题,因为Borland内存管理器与地址> 2GB不兼容。
如果您的应用程序不是LARGEADDRESSAWARE
,则没有明显的理由让它在64位计算机上失败而在32位计算机上失败。在这种情况下,最合理的解释并不比具有需要调试的缺陷的代码更平淡。