Marshal.DestroyStructure Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.