Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Parameter von Host App in DLL freigeben?

  Alt 27. Nov 2012, 11:14
Also erstmal verwenden EXE und DLL immer den gleichen Speicher (außer bei Out-Of-Process-Servern, wo die DLL stattdessen in einem anderem Prozecc geladen wird).

Aber die Verwaltung des Speichers geschieht in mehreren, unterschiedlichen und vorallem unabhängigen Speichermanagern, abgesehn von Shared-Memory, wo sich zwei/mehrere Speichermanager verbinden und gemeinsam arbeiten.


Windows bietet über VirtualAlloc nunmal keine "schöne" (klein skalierbare) und schnelle Möglichkeit an, weswegen da nochmal eine eigene Verwaltung zwischengeschaltet wurde.
(DelphiMM, FastMM usw. ... k.A. was FPC/Lazarus standardmäßig drin hat)

Und jeder Speichermanager kann natürlich nur den von ihm verwalteten Speicher freigeben.


Also entweder Shared, oder man muß dort freigeben, wo man reserviert, wobei man das immer machen sollte, um den Überlick zu behalten.

Du kannst aber gerne eine GibSpeicherFrei-Methode in deine Schnittstelle einbauen und der den Pointer/Speicher mitgeben.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat