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

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

Возвращаемое значение

T

Управляемый объект, содержащий данные, на которые 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 создается исключение.

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