Marshal.PtrToStructure Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Маршалирует данные из неуправляемого блока памяти в управляемый объект.
Перегрузки
| Имя | Описание |
|---|---|
| PtrToStructure(IntPtr, Object) |
Устаревшие.
Маршалирует данные из неуправляемого блока памяти в управляемый объект. |
| PtrToStructure(IntPtr, Type) |
Устаревшие.
Маршалирует данные из неуправляемого блока памяти в только что выделенный управляемый объект указанного типа. |
| PtrToStructure<T>(IntPtr) |
Маршалирует данные из неуправляемого блока памяти в недавно выделенный управляемый объект типа, указанного параметром универсального типа. |
| PtrToStructure<T>(IntPtr, T) |
Маршалирует данные из неуправляемого блока памяти в управляемый объект указанного типа. |
PtrToStructure(IntPtr, Object)
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
Внимание!
PtrToStructure(IntPtr, Object) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296512
Маршалирует данные из неуправляемого блока памяти в управляемый объект.
public:
static void PtrToStructure(IntPtr ptr, System::Object ^ structure);
[System.Obsolete("PtrToStructure(IntPtr, Object) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296512")]
[System.Security.SecurityCritical]
public static void PtrToStructure(IntPtr ptr, object structure);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")]
public static void PtrToStructure(IntPtr ptr, object structure);
public static void PtrToStructure(IntPtr ptr, object structure);
[System.Security.SecurityCritical]
public static void PtrToStructure(IntPtr ptr, object structure);
[System.Runtime.InteropServices.ComVisible(true)]
public static void PtrToStructure(IntPtr ptr, object structure);
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(true)]
public static void PtrToStructure(IntPtr ptr, object structure);
[<System.Obsolete("PtrToStructure(IntPtr, Object) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296512")>]
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * obj -> unit
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")>]
static member PtrToStructure : nativeint * obj -> unit
static member PtrToStructure : nativeint * obj -> unit
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * obj -> unit
[<System.Runtime.InteropServices.ComVisible(true)>]
static member PtrToStructure : nativeint * obj -> unit
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(true)>]
static member PtrToStructure : nativeint * obj -> unit
Public Shared Sub PtrToStructure (ptr As IntPtr, structure As Object)
Параметры
- ptr
-
IntPtr
nativeint
Указатель на неуправляемый блок памяти.
- structure
- Object
Объект, в который копируются данные. Это должен быть экземпляр отформатированного класса.
- Атрибуты
Исключения
Макет структуры не является последовательным или явным.
–или–
Структура — это тип прямоугольного значения.
Комментарии
PtrToStructure часто требуется при вызове COM-взаимодействия и платформы при представлении параметров структуры в качестве System.IntPtr значения. Этот метод перегрузки нельзя использовать с типами значений.
ptr Если параметр равенIntPtr.Zero, null возвращается.
Применяется к
PtrToStructure(IntPtr, Type)
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
Внимание!
PtrToStructure(IntPtr, Type) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296513
Маршалирует данные из неуправляемого блока памяти в только что выделенный управляемый объект указанного типа.
public:
static System::Object ^ PtrToStructure(IntPtr ptr, Type ^ structureType);
[System.Obsolete("PtrToStructure(IntPtr, Type) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296513")]
[System.Security.SecurityCritical]
public static object PtrToStructure(IntPtr ptr, Type structureType);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")]
public static object? PtrToStructure(IntPtr ptr, Type structureType);
public static object? PtrToStructure(IntPtr ptr, Type structureType);
[System.Security.SecurityCritical]
public static object PtrToStructure(IntPtr ptr, Type structureType);
public static object PtrToStructure(IntPtr ptr, Type structureType);
[System.Runtime.InteropServices.ComVisible(true)]
public static object PtrToStructure(IntPtr ptr, Type structureType);
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(true)]
public static object PtrToStructure(IntPtr ptr, Type structureType);
[<System.Obsolete("PtrToStructure(IntPtr, Type) may be unavailable in future releases. Instead, use PtrToStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296513")>]
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * Type -> obj
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")>]
static member PtrToStructure : nativeint * Type -> obj
static member PtrToStructure : nativeint * Type -> obj
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * Type -> obj
[<System.Runtime.InteropServices.ComVisible(true)>]
static member PtrToStructure : nativeint * Type -> obj
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(true)>]
static member PtrToStructure : nativeint * Type -> obj
Public Shared Function PtrToStructure (ptr As IntPtr, structureType As Type) As Object
Параметры
- ptr
-
IntPtr
nativeint
Указатель на неуправляемый блок памяти.
- structureType
- Type
Тип создаваемого объекта. Этот объект должен представлять форматированный класс или структуру.
Возвращаемое значение
Управляемый объект, содержащий данные, на которые указывает ptr параметр.
- Атрибуты
Исключения
Макет structureType параметра не является последовательным или явным.
–или–
Параметр structureType является определением универсального типа.
structureType равно null.
Класс, указанный в structureType ней, не имеет конструктора без параметров.
Комментарии
PtrToStructure часто требуется при вызове COM-взаимодействия и платформы при представлении параметров структуры в качестве System.IntPtr значения. Тип значения можно передать этому методу перегрузки. В этом случае возвращенный объект является экземпляром в поле.
ptr Если параметр равенIntPtr.Zero, null возвращается.
См. также раздел
Применяется к
PtrToStructure<T>(IntPtr)
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
Маршалирует данные из неуправляемого блока памяти в недавно выделенный управляемый объект типа, указанного параметром универсального типа.
public:
generic <typename T>
static T PtrToStructure(IntPtr ptr);
[System.Security.SecurityCritical]
public static T PtrToStructure<T>(IntPtr ptr);
public static T? PtrToStructure<T>(IntPtr ptr);
public static T PtrToStructure<T>(IntPtr ptr);
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint -> 'T
static member PtrToStructure : nativeint -> 'T
Public Shared Function PtrToStructure(Of T) (ptr As IntPtr) As T
Параметры типа
- T
Тип объекта, в который копируются данные. Это должен быть отформатированный класс или структура.
Параметры
- ptr
-
IntPtr
nativeint
Указатель на неуправляемый блок памяти.
Возвращаемое значение
Управляемый объект, содержащий данные, на которые ptr указывает параметр.
- Атрибуты
Исключения
Макет T не является последовательным или явным.
Класс, указанный в T ней, не имеет конструктора без параметров.
Комментарии
PtrToStructure<T>(IntPtr) часто требуется при вызове COM-взаимодействия и платформы, когда параметры структуры представлены в виде System.IntPtr значений. Вы можете передать тип значения в эту перегрузку метода.
ptr Если параметр равен IntPtr.Zero и T является ссылочным типом, null возвращается. Если ptr равно IntPtr.Zero и T является типом значения, NullReferenceException создается исключение.
Применяется к
PtrToStructure<T>(IntPtr, T)
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
Маршалирует данные из неуправляемого блока памяти в управляемый объект указанного типа.
public:
generic <typename T>
static void PtrToStructure(IntPtr ptr, T structure);
[System.Security.SecurityCritical]
public static void PtrToStructure<T>(IntPtr ptr, T structure);
public static void PtrToStructure<T>(IntPtr ptr, T structure);
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * 'T -> unit
static member PtrToStructure : nativeint * 'T -> unit
Public Shared Sub PtrToStructure(Of T) (ptr As IntPtr, structure As T)
Параметры типа
- T
Тип параметра structure. Это должен быть отформатированный класс.
Параметры
- ptr
-
IntPtr
nativeint
Указатель на неуправляемый блок памяти.
- structure
- T
Объект, в который копируются данные.
- Атрибуты
Исключения
Макет структуры не является последовательным или явным.
Комментарии
PtrToStructure<T>(IntPtr, T) часто требуется при вызове COM-взаимодействия и платформы, когда параметры структуры представлены в виде IntPtr значений. Эту перегрузку метода нельзя использовать с типами значений.
ptr Если параметр равен IntPtr.Zero и T является ссылочным типом, null возвращается. Если ptr равно IntPtr.Zero и T является типом значения, NullReferenceException создается исключение.