Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#12

AW: Standardunits in dll einbinden

  Alt 6. Aug 2010, 14:08
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 Delphi-Referenz durchsuchenSimpleShareMem enthält auch nur die Funktionsaufrufe für Delphi-Referenz durchsuchenShareMemoryManager und Delphi-Referenz durchsuchenAttemptToUseSharedMemoryManager
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat