Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Eine Variable "umziehen"

  Alt 14. Okt 2009, 19:53
Wie man den SharedMM einrichtet ist ja egal, hauptsache man macht es, wenn man Speicher über die Grenzen hinweg verwalten will/muß.


Zitat von littleDave:
Wichtig ist dabei: man sollte in der DLL kein Speicher vor dem DLL_SetMemoryManager anfordern. Zudem sollte jeder Speicher, der nach dem DLL_SetMemoryManager angefordert wurde, vor dem DLL_ResetMemoryManager wieder freigegeben werden.
Und genau da liegt ein großes Problem bei deiner Variante.
Sobald du z.B. die Unit SysUtils in deinem Projekt hast, wird unweigerlich der DLL-Eigene Manager schon verwendet, noch bevor du deine DLL_SetMemoryManager aufrufen kannst.

Daher wurde z.B. bei ShareMem von Borland der Manager der DLL in der EXE verwendet, da es sehr leicht möglich ist den Manager in dieser Richtung zu übergeben.

Darum ist auch mal dieser Code entstanden.
Und glaub mir, der ist schon vereinfacht ... also ich vor knapp 2 Jahren mit sowas anfing, da war der Code noch "kompliziert".
http://www.delphipraxis.net/internal...t.php?t=159601

Der Einfachste Weg ist immernoch Borlands ShareMem (borlndmm.dll)
oder man nutzt die Möglichkeiten von FastMM aus, denn dieses läßt sich auch als Shared-MM konfigurieren.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat