Partager via


Marshal.DestroyStructure Méthode

Définition

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.

S’applique à