Marshal.DestroyStructure Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
DestroyStructure(IntPtr, Type) |
Veraltet.
Gibt alle Unterstrukturen frei, auf die der angegebene nicht verwaltete Speicherblock zeigt. |
DestroyStructure<T>(IntPtr) |
Gibt alle Unterstrukturen eines angegebenen Typs frei, auf die der angegebene nicht verwaltete Speicherblock zeigt. |
DestroyStructure(IntPtr, Type)
- Quelle:
- Marshal.cs
- Quelle:
- Marshal.cs
- Quelle:
- Marshal.CoreCLR.cs
Achtung
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
Gibt alle Unterstrukturen frei, auf die der angegebene nicht verwaltete Speicherblock zeigt.
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)
Parameter
- ptr
-
IntPtr
nativeint
Ein Zeiger auf einen nicht verwalteten Speicherblock.
- structuretype
- Type
Typ einer formatierten Klasse. Damit werden die Layoutinformationen bereitgestellt, die zum Löschen des Puffers im ptr
-Parameter benötigt werden.
- Attribute
Ausnahmen
structureType
weist ein automatisch angelegtes Layout auf. Verwenden Sie stattdessen sequenzielles oder explizites Layout.
Hinweise
Sie können diese Methode verwenden, um Verweistypfelder, z. B. Zeichenfolgen, einer nicht verwalteten Struktur freizugeben. Im Gegensatz zu ihren Feldern kann eine Struktur ein Werttyp oder ein Verweistyp sein. Werttypstrukturen, die Werttypfelder (alle blittierbar) enthalten, weisen keine Verweise auf, deren Arbeitsspeicher freigegeben werden muss. Die Marshal.StructureToPtr -Methode verwendet diese Methode, um Speicherverluste bei der Wiederverwendung von Speicher zu verhindern, der von einer -Struktur belegt wird.
DestroyStructure ruft die COM-SysFreeString-Funktion auf, die wiederum eine zugeordnete Zeichenfolge freigibt.
Zusätzlich zu DestroyStructurestellt die Marshal -Klasse zwei weitere Methoden zur Speicheraufteilung bereit: FreeCoTaskMem und FreeHGlobal.
Weitere Informationen
Gilt für:
DestroyStructure<T>(IntPtr)
- Quelle:
- Marshal.cs
- Quelle:
- Marshal.cs
- Quelle:
- Marshal.cs
Gibt alle Unterstrukturen eines angegebenen Typs frei, auf die der angegebene nicht verwaltete Speicherblock zeigt.
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)
Typparameter
- T
Der Typ der formatierten Struktur. Damit werden die Layoutinformationen bereitgestellt, die zum Löschen des Puffers im ptr
-Parameter benötigt werden.
Parameter
- ptr
-
IntPtr
nativeint
Ein Zeiger auf einen nicht verwalteten Speicherblock.
- Attribute
Ausnahmen
T
weist ein automatisch angelegtes Layout auf. Verwenden Sie stattdessen sequenzielles oder explizites Layout.
Hinweise
Sie können diese Methode verwenden, um Verweistypfelder wie Zeichenfolgen einer nicht verwalteten Struktur freizugeben. Im Gegensatz zu ihren Feldern kann eine Struktur ein Werttyp oder ein Verweistyp sein. Werttypstrukturen, die Wertetypfelder (alle blittierbar) enthalten, weisen keine Verweise auf, deren Arbeitsspeicher freigegeben werden muss. Die Marshal.StructureToPtr -Methode verwendet diese Methode, um Speicherverluste bei der Wiederverwendung von Speicher zu verhindern, der von einer -Struktur belegt wird.
DestroyStructure ruft die COM-SysFreeString-Funktion auf, die wiederum eine zugeordnete Zeichenfolge freigibt.