System.TMemoryManagerEx

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

  TMemoryManagerEx = record
    {The basic (required) memory manager functionality}
    GetMem: function(Size: NativeInt): Pointer;
    FreeMem: function(P: Pointer): Integer;
    ReallocMem: function(P: Pointer; Size: NativeInt): Pointer;
    {Extended (optional) functionality.}
    AllocMem: function(Size: NativeInt): Pointer;
    RegisterExpectedMemoryLeak: function(P: Pointer): Boolean;
    UnregisterExpectedMemoryLeak: function(P: Pointer): Boolean;
  end;

C++

struct DECLSPEC_DRECORD TMemoryManagerEx
{
public:
    void * __fastcall (*GetMem)(NativeInt Size);
    int __fastcall (*FreeMem)(void * P);
    void * __fastcall (*ReallocMem)(void * P, NativeInt Size);
    void * __fastcall (*AllocMem)(NativeInt Size);
    bool __fastcall (*RegisterExpectedMemoryLeak)(void * P);
    bool __fastcall (*UnregisterExpectedMemoryLeak)(void * P);
};

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
record
struct
public
System.pas
System.hpp
System System

Beschreibung

TMemoryManager definiert erweiterte Eintrittspunkte für den Speicherblock.

Der Typ TMemoryManagerEx wird von den Prozeduren GetMemoryManager und SetMemoryManager verwendet. Er definiert die Routinen für die Speicherzuweisung und -freigabe.

Die folgende Tabelle führt die Felder dieses Typs und deren Bedeutung auf.



Feld Bedeutung

GetMem

Gibt eine Funktion an, die die angegebene Byte-Anzahl zuweist und einen Zeiger auf den neu von der Routine GetMemory zugewiesenen Block zurückgibt. Der an die Funktion GetMem übergebene Parameter Size ist nie 0. Wenn die Funktion GetMem keinen Block in der angegebenen Größe zuweisen kann, wird nil (Delphi) oder NULL (C++) zurückgegeben.

FreeMem

Gibt eine Funktion an, die die Zuweisung des angegebenen Blocks aufhebt. Der an die Funktion FreeMem übergebene Zeigerparameter kann nie nil (Delphi) oder NULL (C++) sein. Wenn FreeMem den angegebenen Block erfolgreich freigeben konnte, wird 0 zurückgegeben. Ansonsten wird ein Wert ungleich Null zurückgegeben.

ReallocMem

Gibt eine Funktion an, die den angegebenen Block mit der angegebenen Größe neu zuweist. Der an die Funktion ReallocMem übergebene Zeigerparameter kann nie nil (Delphi) oder NULL (C++) sein, und der Parameter Size kann nie 0 sein. ReallocMem muss den angegebenen Block mit der neuen Größe neu zuweisen, wobei der Block möglicherweise verlagert wird, wenn dessen Größe an der alten Position nicht verändert werden kann. Der vorhandene Blockinhalt muss beibehalten werden, aber der neu zugewiesene Speicher kann uninitialisiert sein. Die Funktion ReallocMem muss einen Zeiger auf den neu zugewiesenen Block oder nil (Delphi) bzw. NULL (C++) zurückgeben, wenn der Block nicht neu zugewiesen werden konnte.

AllocMem

Gibt eine Funktion an, die die angegebene Byte-Anzahl zuweist und einen Zeiger auf den neu von der Routine AllocMem zugewiesenen Block zurückgibt.

RegisterExpectedMemoryLeak

Gibt eine Funktion an, die eine Speicherposition gemäß der Routine RegisterExpectedMemoryLeak registriert, die eine Anwendung zugewiesen hat und nicht freigibt.

UnregisterExpectedMemoryLeak

Gibt eine Funktion an, die eine Speicherposition aus der Liste der erwarteten Speicherlecks des Speichermanagers gemäß der Routine UnregisterExpectedMemoryLeak entfernt.



Siehe auch

Codebeispiele