Marshal.DestroyStructure Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
DestroyStructure(IntPtr, Type) |
Obsolète.
Libère toutes les sous-structures vers lesquelles pointe le bloc de mémoire non managée spécifié. |
DestroyStructure<T>(IntPtr) |
Libère toutes les sous-structures d'un type spécifié vers lesquelles pointe le bloc de mémoire non managé spécifié. |
DestroyStructure(IntPtr, Type)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.CoreCLR.cs
Attention
DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520
Libère toutes les sous-structures vers lesquelles pointe le bloc de mémoire non managée spécifié.
public:
static void DestroyStructure(IntPtr ptr, Type ^ structuretype);
[System.Obsolete("DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520")]
[System.Security.SecurityCritical]
public static void DestroyStructure (IntPtr ptr, Type structuretype);
public static void DestroyStructure (IntPtr ptr, Type structuretype);
[System.Security.SecurityCritical]
public static void DestroyStructure (IntPtr ptr, Type structuretype);
[System.Runtime.InteropServices.ComVisible(true)]
public static void DestroyStructure (IntPtr ptr, Type structuretype);
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(true)]
public static void DestroyStructure (IntPtr ptr, Type structuretype);
[<System.Obsolete("DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520")>]
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint * Type -> unit
static member DestroyStructure : nativeint * Type -> unit
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Runtime.InteropServices.ComVisible(true)>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(true)>]
static member DestroyStructure : nativeint * Type -> unit
Public Shared Sub DestroyStructure (ptr As IntPtr, structuretype As Type)
Paramètres
- ptr
-
IntPtr
nativeint
Pointeur vers un bloc de mémoire non managée.
- structuretype
- Type
Type d'une classe mise en forme. Ceci fournit les informations relatives à la disposition nécessaires pour supprimer la mémoire tampon dans le paramètre ptr
.
- Attributs
Exceptions
structureType
possède une disposition automatique. Optez plutôt pour séquentiel ou explicite.
Remarques
Vous pouvez utiliser cette méthode pour libérer des champs de type référence, tels que des chaînes, d’une structure non managée. Contrairement à ses champs, une structure peut être un type valeur ou un type référence. Les structures de type valeur qui contiennent des champs de type valeur (tous blittables) n’ont aucune référence dont la mémoire doit être libérée. La Marshal.StructureToPtr méthode utilise cette méthode pour éviter les fuites de mémoire lors de la réutilisation de la mémoire occupée par une structure.
DestroyStructure appelle la fonction COM SysFreeString , qui libère à son tour une chaîne allouée.
En plus de DestroyStructure, la Marshal classe fournit deux autres méthodes de répartition de la mémoire : FreeCoTaskMem et FreeHGlobal.
Voir aussi
S’applique à
DestroyStructure<T>(IntPtr)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
Libère toutes les sous-structures d'un type spécifié vers lesquelles pointe le bloc de mémoire non managé spécifié.
public:
generic <typename T>
static void DestroyStructure(IntPtr ptr);
[System.Security.SecurityCritical]
public static void DestroyStructure<T> (IntPtr ptr);
public static void DestroyStructure<T> (IntPtr ptr);
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint -> unit
static member DestroyStructure : nativeint -> unit
Public Shared Sub DestroyStructure(Of T) (ptr As IntPtr)
Paramètres de type
- T
Type de la structure mise en forme. Ceci fournit les informations relatives à la disposition nécessaires pour supprimer la mémoire tampon dans le paramètre ptr
.
Paramètres
- ptr
-
IntPtr
nativeint
Pointeur vers un bloc de mémoire non managée.
- Attributs
Exceptions
T
possède une disposition automatique. Optez plutôt pour séquentiel ou explicite.
Remarques
Vous pouvez utiliser cette méthode pour libérer des champs de type de référence, tels que des chaînes, d’une structure non managée. Contrairement à ses champs, une structure peut être un type valeur ou un type référence. Les structures de type valeur qui contiennent des champs de type valeur (tous blittables) n’ont aucune référence dont la mémoire doit être libérée. La Marshal.StructureToPtr méthode utilise cette méthode pour éviter les fuites de mémoire lors de la réutilisation de la mémoire occupée par une structure.
DestroyStructure appelle la fonction COM SysFreeString , qui libère à son tour une chaîne allouée.