Поделиться через


Marshal.DestroyStructure Метод

Определение

Перегрузки

DestroyStructure(IntPtr, Type)
Устаревшие..

Освобождает все вложенные структуры, на которые указывает заданный блок неуправляемой памяти.

DestroyStructure<T>(IntPtr)

Освобождает все вложенные структуры указанного типа, на которые указывает заданный блок неуправляемой памяти.

DestroyStructure(IntPtr, Type)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.CoreCLR.cs

Внимание!

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

Освобождает все вложенные структуры, на которые указывает заданный блок неуправляемой памяти.

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)

Параметры

ptr
IntPtr

nativeint

Указатель на неуправляемый блок памяти.

structuretype
Type

Тип отформатированного класса. Предоставляет сведения распределения, необходимые для удаления буфера из параметра ptr.

Атрибуты

Исключения

Параметр structureType обеспечивает автоматическое распределение. Вместо него следует использовать последовательный или явный вариант.

Комментарии

Этот метод можно использовать для освобождения полей ссылочного типа, таких как строки, неуправляемой структуры. В отличие от полей, структура может быть типом значения или ссылочным типом. Структуры типа значений, содержащие поля типа значений (все перемещаемые), не имеют ссылок, память которых должна быть освобождена. Этот Marshal.StructureToPtr метод используется для предотвращения утечек памяти при повторном использовании памяти, занятой структурой.

DestroyStructure вызывает функцию COM SysFreeString , которая, в свою очередь, освобождает выделенную строку.

В дополнение к DestroyStructureMarshal класс предоставляет два других метода освобождения памяти: FreeCoTaskMem и FreeHGlobal.

См. также раздел

Применяется к

DestroyStructure<T>(IntPtr)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Освобождает все вложенные структуры указанного типа, на которые указывает заданный блок неуправляемой памяти.

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)

Параметры типа

T

Тип отформатированной структуры. Предоставляет сведения распределения, необходимые для удаления буфера из параметра ptr.

Параметры

ptr
IntPtr

nativeint

Указатель на неуправляемый блок памяти.

Атрибуты

Исключения

Параметр T обеспечивает автоматическое распределение. Вместо него следует использовать последовательный или явный вариант.

Комментарии

Этот метод можно использовать для освобождения полей ссылочного типа, таких как строки, неуправляемой структуры. В отличие от полей, структура может быть типом значения или ссылочным типом. Структуры типов значений, содержащие поля типа значений (все перемещаемые), не имеют ссылок, память которых должна быть освобождена. Этот Marshal.StructureToPtr метод используется для предотвращения утечек памяти при повторном использовании памяти, занятой структурой.

DestroyStructure вызывает функцию COM SysFreeString , которая, в свою очередь, освобождает выделенную строку.

Применяется к