Borland.Delphi.7.FastMM.RTL.Patch 使用了 Delphi 2006 的 GetMem.inc,而这个 GetMem.inc 其实就是 FastMM,所以说这“不光是 FastMM 4.62、Rtl Patch 还有官方的 Delphi 2006”都存在的 BUG。
你可以在 Delphi 2006 下使用 SimpleShareMem 进行共享内存管理器的测试(其实把 patch 中的 Demo 下的 ShareMem 改成 SimpleShareMem 然后在 Delphi 2006 下编译,98 下运行就可以看出来了:)
好处:
替换后不需要对“原来的代码”进行任何的修改,如果出现问题,恢复非常简单(仅仅 restore.bat,对你的代码没有影响!)
BTW:
Delphi 2006 下 ShareMem 和 SimpleShareMem 是两种完全不同的共享内存管理器的机制:前者共享第三方 Dll(borlndmm.dll) 的内存管理器,后者利用“内存桥”的方式进行共享。