Marshal.DestroyStructure Methode

Definitie

Overloads

Name Description
DestroyStructure(IntPtr, Type)
Verouderd.

Hiermee worden alle substructuren vrijgemaakt waarnaar het opgegeven niet-beheerde geheugenblok verwijst.

DestroyStructure<T>(IntPtr)

Hiermee worden alle substructuren van een opgegeven type vrijgemaakt waarnaar het opgegeven niet-beheerde geheugenblok verwijst.

DestroyStructure(IntPtr, Type)

Bron:
Marshal.CoreCLR.cs
Bron:
Marshal.CoreCLR.cs
Bron:
Marshal.cs
Bron:
Marshal.cs
Bron:
Marshal.CoreCLR.cs

Let op

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

Hiermee worden alle substructuren vrijgemaakt waarnaar het opgegeven niet-beheerde geheugenblok verwijst.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available. Use the DestroyStructure<T> overload instead.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available. Use the DestroyStructure<T> overload instead.")>]
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)

Parameters

ptr
IntPtr

nativeint

Een aanwijzer naar een onbeheerd geheugenblok.

structuretype
Type

Type van een opgemaakte klasse. Dit biedt de indelingsinformatie die nodig is om de buffer in de ptr parameter te verwijderen.

Kenmerken

Uitzonderingen

structuretype heeft een automatische indeling. Gebruik in plaats daarvan sequentiële of expliciete.

Opmerkingen

U kunt deze methode gebruiken om velden van het type vrije verwijzing, zoals tekenreeksen, van een niet-beheerde structuur te gebruiken. In tegenstelling tot de velden kan een structuur een waardetype of een verwijzingstype zijn. Structuren van het waardetype die velden van het waardetype bevatten (alle blittable) hebben geen verwijzingen waarvan het geheugen moet worden vrijgemaakt. De Marshal.StructureToPtr methode gebruikt deze methode om geheugenlekken te voorkomen bij het hergebruik van geheugen dat door een structuur wordt bezet.

DestroyStructure roept de functie COM SysFreeString aan, die op zijn beurt een toegewezen tekenreeks vrijgeeft.

Bovendien DestroyStructurebiedt de Marshal klasse twee andere methoden voor geheugen-deallocatie: FreeCoTaskMem en FreeHGlobal.

Zie ook

Van toepassing op

DestroyStructure<T>(IntPtr)

Bron:
Marshal.cs
Bron:
Marshal.cs
Bron:
Marshal.cs
Bron:
Marshal.cs
Bron:
Marshal.cs

Hiermee worden alle substructuren van een opgegeven type vrijgemaakt waarnaar het opgegeven niet-beheerde geheugenblok verwijst.

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)

Type parameters

T

Het type van de opgemaakte structuur. Dit biedt de indelingsinformatie die nodig is om de buffer in de ptr parameter te verwijderen.

Parameters

ptr
IntPtr

nativeint

Een aanwijzer naar een onbeheerd geheugenblok.

Kenmerken

Uitzonderingen

T heeft een automatische indeling. Gebruik in plaats daarvan sequentiële of expliciete.

Opmerkingen

U kunt deze methode gebruiken om velden van het type vrije verwijzing, zoals tekenreeksen, van een niet-beheerde structuur te gebruiken. In tegenstelling tot de velden kan een structuur een waardetype of een verwijzingstype zijn. Waardetypestructuren die waardetypevelden bevatten (alle blittable) hebben geen verwijzingen waarvan het geheugen moet worden vrijgemaakt. De Marshal.StructureToPtr methode gebruikt deze methode om geheugenlekken te voorkomen bij het hergebruik van geheugen dat door een structuur wordt bezet.

DestroyStructure roept de functie COM SysFreeString aan, die op zijn beurt een toegewezen tekenreeks vrijgeeft.

Van toepassing op