System.TMemoryManagerEx
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);
};
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
record struct |
public | System.pas System.hpp |
System | System |
Description
TMemoryManagerEx définit les points d'entrée des blocs de mémoire étendue.
Le type TMemoryManagerEx est utilisée par les procédures GetMemoryManager et SetMemoryManager. Il définit les routines allouant et libérant la mémoire.
Le tableau suivant liste les champs de ce type et leur signification.
Champ | Signification |
---|---|
GetMem |
Spécifie une fonction allouant le nombre donné d'octets et renvoie un pointeur sur le bloc nouvellement alloué, comme invoqué par la routine GetMemory. Le paramètre Size transmis à la fonction GetMem ne sera jamais zéro. Si la fonction GetMem ne peut pas allouer un bloc de la taille donnée, elle doit renvoyer nil (Delphi) ou NULL (C++). |
FreeMem |
Spécifie une fonction qui désalloue le bloc spécifié. Le paramètre pointeur transmis à la fonction FreeMem ne sera jamais nil (Delphi) ou NULL (C++). Si la fonction FreeMem désalloue avec succès le bloc spécifié, elle doit renvoyer zéro. Sinon, elle doit renvoyer une valeur différente de zéro. |
ReallocMem |
Spécifie une fonction qui réalloue le bloc spécifié pour sa nouvelle taille. Le paramètre pointeur transmis à la fonction ReallocMem ne sera jamais nil (Delphi) ou NULL (C++), et la valeur du paramètre Size ne sera jamais zéro. La fonction ReallocMem doit réallouer le bloc spécifié pour sa nouvelle taille, en déplaçant éventuellement le bloc s'il ne peut pas être redimensionné sur place. Tout contenu existant du bloc doit être préservé, mais un espace nouvellement alloué peut être désinitialisé. La fonction ReallocMem doit renvoyer un pointeur sur le bloc réalloué, nil (Delphi) ou NULL (C++) si le bloc ne peut pas être réalloué. |
AllocMem |
Spécifie une fonction allouant le nombre donné d'octets et renvoie un pointeur sur le bloc nouvellement alloué, comme invoqué par la routine AllocMem. |
RegisterExpectedMemoryLeak |
Spécifie une fonction qui enregistre un emplacement mémoire qu'une application a alloué et ne prévoit pas de libérer, comme invoqué par la routine RegisterExpectedMemoryLeak. |
UnregisterExpectedMemoryLeak |
Spécifie une fonction qui retire un emplacement de mémoire de la liste des pertes de mémoire prévues du gestionnaire de mémoire, comme invoqué par la routine UnregisterExpectedMemoryLeak. |