Die
DLL war eigentlich nie nötig, aber diese stellt als seperate globale
DLL eine sichere Methode dar, um problemlos zu sharen, da sie immer als "erstes" (vor der EXE und der anderen
DLL) geladen wird.
Problem:
versuche mal den Speicher zwischen 2 dynamisch geladenen DLLs (nicht mit der EXE, sondern nun zwischen den DLLs) zu sharen.
- erste
DLL laden
- diese läd ihren MM
- zweite
DLL laden
- diese nutzt nun den MM der Ersten
- erste
DLL entladen
- diese nimmt ihren MM mit
- in zweiter
DLL kracht es nun, da der MM weg ist
Das Problem hat man auch mit FastMM (ohne extra
DLL für die MM-Verwaltung)
Die
Unit SimpleShareMem enthält auch nur die Funktionsaufrufe für
ShareMemoryManager und
AttemptToUseSharedMemoryManager
und vereinfacht so deren Aufruf, da man sich selber nicht soeine
Unit basteln muß, denn ein externer/anderer MM kann nur geladen werden, wenn der Eigene noch nicht gestartet/benutzt wurde.
Klar kannst du einen neueren/größeren FastMM nutzen, aber auch diesen mußt du, irgendwo in der Options.inc (oder wie die nochmal heißt) dieses aktivieren.