Share via


Marshal.DestroyStructure Metode

Definisi

Overload

DestroyStructure(IntPtr, Type)
Kedaluwarsa.

Membebaskan semua substruktur yang dituju oleh blok memori tidak terkelola yang ditentukan.

DestroyStructure<T>(IntPtr)

Membebaskan semua substruktur dari jenis tertentu yang dituju oleh blok memori yang tidak terkelola yang ditentukan.

DestroyStructure(IntPtr, Type)

Sumber:
Marshal.cs
Sumber:
Marshal.cs
Sumber:
Marshal.CoreCLR.cs

Perhatian

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

Membebaskan semua substruktur yang dituju oleh blok memori tidak terkelola yang ditentukan.

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

Penunjuk ke blok memori yang tidak terkelola.

structuretype
Type

Jenis kelas yang diformat. Ini menyediakan informasi tata letak yang diperlukan untuk menghapus buffer dalam ptr parameter .

Atribut

Pengecualian

structureType memiliki tata letak otomatis. Gunakan berurutan atau eksplisit sebagai gantinya.

Keterangan

Anda dapat menggunakan metode ini untuk membebaskan bidang jenis referensi, seperti string, dari struktur yang tidak dikelola. Tidak seperti bidangnya, struktur dapat berupa jenis nilai atau jenis referensi. Struktur jenis nilai yang berisi bidang jenis nilai (semua dapat di-blittable) tidak memiliki referensi yang memorinya harus dibebaskan. Metode ini Marshal.StructureToPtr menggunakan metode ini untuk mencegah kebocoran memori saat menggunakan kembali memori yang ditempati oleh struktur.

DestroyStructure memanggil fungsi COM SysFreeString , yang, pada gilirannya, membebaskan string yang dialokasikan.

Selain DestroyStructure, Marshal kelas menyediakan dua metode dealokasi memori lainnya: FreeCoTaskMem dan FreeHGlobal.

Lihat juga

Berlaku untuk

DestroyStructure<T>(IntPtr)

Sumber:
Marshal.cs
Sumber:
Marshal.cs
Sumber:
Marshal.cs

Membebaskan semua substruktur dari jenis tertentu yang dituju oleh blok memori yang tidak terkelola yang ditentukan.

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)

Jenis parameter

T

Jenis struktur yang diformat. Ini menyediakan informasi tata letak yang diperlukan untuk menghapus buffer dalam ptr parameter .

Parameter

ptr
IntPtr

nativeint

Penunjuk ke blok memori yang tidak terkelola.

Atribut

Pengecualian

T memiliki tata letak otomatis. Gunakan berurutan atau eksplisit sebagai gantinya.

Keterangan

Anda dapat menggunakan metode ini untuk membebaskan bidang jenis referensi, seperti string, dari struktur yang tidak dikelola. Tidak seperti bidangnya, struktur dapat berupa jenis nilai atau jenis referensi. Struktur jenis nilai yang berisi bidang jenis nilai (semua blittable) tidak memiliki referensi yang memorinya harus dibebaskan. Metode ini Marshal.StructureToPtr menggunakan metode ini untuk mencegah kebocoran memori saat menggunakan kembali memori yang ditempati oleh struktur.

DestroyStructure memanggil fungsi COM SysFreeString , yang, pada gilirannya, membebaskan string yang dialokasikan.

Berlaku untuk