Die
Unit SimpleShareMem in alle DPRs der DLLs und EXE an erster Stelle eintragen.
Fertig.
Die neue borlndmm.dll (die mit dem FastMM drin) ist nur ein Kompatibilitätsupgrade für alte Programme, also für den Austausch der borlndmm.dll mit dem alten BorlandMM drin.
Dort werden alle Speicheranfragen immer über diese zusätzliche
DLL behandelt.
FastMM kann aber mehr:
Man kann diesem über
ShareMemoryManager sagen, daß er sich verteilen/sharen soll.
- also entweder er Findet einen anderen FastMM in einer anderen
DLL/EXE und verbindet sich dann dort hin (innerhalb des eigenen Prozessraums)
- oder er ist der Erste und bietet sich anderen FastMMs an
Delphi-Quellcode:
{Searches the current process for a shared memory manager. If no memory has
been allocated using this memory manager it will switch to using the shared
memory manager instead. Returns true if another memory manager was found and
this module is now sharing it.}
function AttemptToUseSharedMemoryManager: Boolean;
{Makes this memory manager available for sharing to other modules in the
current process. Only one memory manager may be shared per process, so this
function may fail.}
function ShareMemoryManager: Boolean;
SimpleShareMem braucht keine
DLL mehr, da hier der FastMM der ersten statisch geladene
DLL verwendet wird.
Oder der FastMM der EXE, wenn alle DLLs dynamisch geladen werden.
Halt immer der er FastMM, welcher für das Sharing aktiviert wurde.