我已将SafeMM的Delphi XE2移植版上传到CodeCentral。我验证了它正确分配大于4 GB的块,并且在Win64应用程序中分配超过4 GB的较小块时仍能正常工作,并且在Win32应用程序中也可以正常工作。我于2012年7月7日更新了我的CodeCentral提交,以修复一个错误,该错误会导致SafeMM在两个线程同时尝试释放大块(> 4KB)时崩溃。此错误由原始开发者在SafeMM的0.3版本中引入。如果您正在使用此版本的SafeMM与旧版Delphi一起使用,则需要像我一样在FreeLargeBlock中包装代码以进行临界区域处理。
Integer
的声明更改为NativeInt
? - LaKraven