是否有人将SafeMM调试内存管理器移植到Delphi XE2? 2009 SafeMM on CodeCentral无法编译,因为RTL现在使用NativeInt而不是Integer来实现内存功能。
最佳答案
我已将Delphi XE2 port of SafeMM上传到CodeCentral。我已经验证它可以正确分配大于4 GB的块,并且可以在Win64应用程序中使用时分配大于4 GB的较小块,并且它仍可以在Win32应用程序中正常工作。
我已经在2012年7月7日更新了CodeCentral提交内容,以修复导致两个线程试图同时释放一个大块(> 4KB)时SafeMM崩溃的错误。此错误是由SafeMM的原始开发人员在0.3版中引入的。如果您将此版本的SafeMM与早期版本的Delphi一起使用,则需要像在我的版本中一样,在关键部分的FreeLargeBlock
中包装代码。