Marshal.DestroyStructure Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.