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 , которая, в свою очередь, освобождает выделенную строку.