Sdílet prostřednictvím


Marshal.DestroyStructure Metoda

Definice

Přetížení

DestroyStructure(IntPtr, Type)
Zastaralé.

Uvolní všechny podstruktury, na které odkazuje zadaný nespravovaný blok paměti.

DestroyStructure<T>(IntPtr)

Uvolní všechny dílčí struktury zadaného typu, na které odkazuje zadaný nespravovaný blok paměti.

DestroyStructure(IntPtr, Type)

Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.CoreCLR.cs

Upozornění

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

Uvolní všechny podstruktury, na které odkazuje zadaný nespravovaný blok paměti.

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)

Parametry

ptr
IntPtr

nativeint

Ukazatel na nespravovaný blok paměti.

structuretype
Type

Typ formátované třídy. Tím získáte informace o rozložení potřebné k odstranění vyrovnávací paměti v parametru ptr .

Atributy

Výjimky

structureType má automatické rozložení. Místo toho použijte sekvenční nebo explicitní.

Poznámky

Tuto metodu můžete použít k uvolnění polí typu odkazu, jako jsou řetězce, nespravované struktury. Na rozdíl od svých polí může být struktura typ hodnoty nebo typ odkazu. Struktury hodnotových typů, které obsahují pole typu hodnoty (všechna blittable), nemají žádné odkazy, jejichž paměť musí být uvolněna. Metoda Marshal.StructureToPtr používá tuto metodu k zabránění nevracení paměti při opakovaném použití paměti obsazené strukturou.

DestroyStructure volá funkci COM SysFreeString , která zase uvolní přidělený řetězec.

Kromě třídy DestroyStructureMarshal poskytuje dvě další metody přidělení paměti: FreeCoTaskMem a FreeHGlobal.

Viz také

Platí pro

DestroyStructure<T>(IntPtr)

Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs

Uvolní všechny dílčí struktury zadaného typu, na které odkazuje zadaný nespravovaný blok paměti.

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)

Parametry typu

T

Typ formátované struktury. Tím získáte informace o rozložení potřebné k odstranění vyrovnávací paměti v parametru ptr .

Parametry

ptr
IntPtr

nativeint

Ukazatel na nespravovaný blok paměti.

Atributy

Výjimky

T má automatické rozložení. Místo toho použijte sekvenční nebo explicitní.

Poznámky

Tuto metodu můžete použít k uvolnění polí typu odkazu, jako jsou řetězce, nespravované struktury. Na rozdíl od svých polí může být struktura typ hodnoty nebo typ odkazu. Struktury typů hodnot, které obsahují pole typu hodnoty (všechna blittable), nemají žádné odkazy, jejichž paměť musí být uvolněna. Metoda Marshal.StructureToPtr používá tuto metodu k zabránění nevracení paměti při opakovaném použití paměti obsazené strukturou.

DestroyStructure volá funkci COM SysFreeString , která zase uvolní přidělený řetězec.

Platí pro