Marshal.DestroyStructure Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 utilizzare questo metodo per liberare campi di tipo riferimento, ad esempio stringhe, di una struttura non gestita. A differenza dei relativi campi, una struttura può essere un tipo valore o un tipo riferimento. Le strutture di tipo valore che contengono campi di tipo valore (tutti copiabili) non hanno riferimenti la cui memoria deve essere liberata. Il Marshal.StructureToPtr metodo usa questo metodo per evitare perdite di memoria durante il riutilizzo della memoria occupata da una struttura.
DestroyStructure chiama la funzione COM SysFreeString , che a sua volta libera una stringa allocata.
Oltre a DestroyStructure, la Marshal classe fornisce altri due 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 utilizzare questo metodo per liberare campi di tipo riferimento, ad esempio stringhe, di una struttura non gestita. A differenza dei relativi campi, una struttura può essere un tipo valore o un tipo riferimento. Le strutture dei tipi valore che contengono campi di tipo valore (tutti copiabili) non hanno riferimenti la cui memoria deve essere liberata. Il Marshal.StructureToPtr metodo usa questo metodo per evitare perdite di memoria durante il riutilizzo della memoria occupata da una struttura.
DestroyStructure chiama la funzione COM SysFreeString , che a sua volta libera una stringa allocata.
Si applica a
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per