Condividi tramite


Marshal.DestroyStructure Metodo

Definizione

Overload

DestroyStructure(IntPtr, Type)
Obsoleti.

Libera tutte le sottostrutture a cui punta il blocco di memoria non gestita specificato.

DestroyStructure<T>(IntPtr)

Libera tutte le sottostrutture di un tipo specificato a cui punta il blocco di memoria non gestita specificato.

DestroyStructure(IntPtr, Type)

Origine:
Marshal.cs
Origine:
Marshal.cs
Origine:
Marshal.CoreCLR.cs

Attenzione

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

Libera tutte le sottostrutture a cui punta il blocco di memoria non gestita specificato.

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)

Parametri

ptr
IntPtr

nativeint

Puntatore a un blocco di memoria non gestita.

structuretype
Type

Tipo di una classe formattata. Fornisce le informazioni di layout necessarie per eliminare il buffer o i buffer nel parametro ptr.

Attributi

Eccezioni

structureType dispone di un layout automatico. Utilizzare invece il layout sequenziale o esplicito.

Commenti

È possibile usare questo metodo per liberare campi di tipo riferimento, ad esempio stringhe, di una struttura non gestita. A differenza dei campi, una struttura può essere un tipo di valore o un tipo di riferimento. Le strutture di tipo valore che contengono campi di tipo valore (tutti blittable) non hanno riferimenti la cui memoria deve essere liberata. Il Marshal.StructureToPtr metodo usa questo metodo per evitare perdite di memoria quando si riutilizza la memoria occupata da una struttura.

DestroyStructure chiama la funzione SYSFreeString COM, che, a sua volta, libera una stringa allocata.

Oltre a DestroyStructure, la Marshal classe fornisce due altri metodi di deallocazione della memoria: FreeCoTaskMem e FreeHGlobal.

Vedi anche

Si applica a

DestroyStructure<T>(IntPtr)

Origine:
Marshal.cs
Origine:
Marshal.cs
Origine:
Marshal.cs

Libera tutte le sottostrutture di un tipo specificato a cui punta il blocco di memoria non gestita specificato.

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)

Parametri di tipo

T

Tipo della struttura formattata. Fornisce le informazioni di layout necessarie per eliminare il buffer o i buffer nel parametro ptr.

Parametri

ptr
IntPtr

nativeint

Puntatore a un blocco di memoria non gestita.

Attributi

Eccezioni

T dispone di un layout automatico. Utilizzare invece il layout sequenziale o esplicito.

Commenti

È possibile usare questo metodo per liberare campi di tipo di riferimento, ad esempio stringhe, di una struttura non gestita. A differenza dei campi, una struttura può essere un tipo di valore o un tipo di riferimento. Le strutture dei tipi di valore che contengono campi di tipo valore (tutti blittable) non hanno riferimenti la cui memoria deve essere liberata. Il Marshal.StructureToPtr metodo usa questo metodo per evitare perdite di memoria quando si riutilizza la memoria occupata da una struttura.

DestroyStructure chiama la funzione SYSFreeString COM, che, a sua volta, libera una stringa allocata.

Si applica a