Marshal.PtrToStructure Metoda

Definice

Zařazuje data z nespravovaného bloku paměti do spravovaného objektu.

Přetížení

Name Description
PtrToStructure(IntPtr, Object)
Zastaralé.

Zařazuje data z nespravovaného bloku paměti do spravovaného objektu.

PtrToStructure(IntPtr, Type)
Zastaralé.

Zařazuje data z nespravovaného bloku paměti na nově přidělený spravovaný objekt zadaného typu.

PtrToStructure<T>(IntPtr)

Zařazuje data z nespravovaného bloku paměti do nově přiděleného spravovaného objektu typu určeného parametrem obecného typu.

PtrToStructure<T>(IntPtr, T)

Zařazuje data z nespravovaného bloku paměti do spravovaného objektu zadaného typu.

PtrToStructure(IntPtr, Object)

Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs

Upozornění

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

Zařazuje data z nespravovaného bloku paměti do spravovaného objektu.

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)

Parametry

ptr
IntPtr

nativeint

Ukazatel na nespravovaný blok paměti.

structure
Object

Objekt, do kterého se mají data zkopírovat. Musí to být instance formátované třídy.

Atributy

Výjimky

Rozložení struktury není sekvenční ani explicitní.

nebo

Struktura je typ hodnoty v rámečku.

Poznámky

PtrToStructure je často nutný při vyvolání zprostředkovatele komunikace a platformy MODELU COM, pokud jsou parametry struktury reprezentovány jako System.IntPtr hodnota. Tuto metodu přetížení nelze použít s typy hodnot. Pokud se ptr parametr rovná IntPtr.Zero, null vrátí se.

Platí pro

PtrToStructure(IntPtr, Type)

Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs

Upozornění

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

Zařazuje data z nespravovaného bloku paměti na nově přidělený spravovaný objekt zadaného typu.

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

Parametry

ptr
IntPtr

nativeint

Ukazatel na nespravovaný blok paměti.

structureType
Type

Typ objektu, který se má vytvořit. Tento objekt musí představovat formátovanou třídu nebo strukturu.

Návraty

Spravovaný objekt obsahující data, na která ptr odkazuje parametr.

Atributy

Výjimky

Rozložení parametru structureType není sekvenční ani explicitní.

nebo

Parametr structureType je definice obecného typu.

structureType je null.

Třída zadaná structureType parametrem nemá přístupný konstruktor bez parametrů.

Poznámky

PtrToStructure je často nutný při vyvolání zprostředkovatele komunikace a platformy MODELU COM, pokud jsou parametry struktury reprezentovány jako System.IntPtr hodnota. Do této metody přetížení můžete předat typ hodnoty. V tomto případě je vrácený objekt boxem instance. Pokud se ptr parametr rovná IntPtr.Zero, null vrátí se.

Viz také

Platí pro

PtrToStructure<T>(IntPtr)

Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs

Zařazuje data z nespravovaného bloku paměti do nově přiděleného spravovaného objektu typu určeného parametrem obecného typu.

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

Parametry typu

T

Typ objektu, do kterého se mají data zkopírovat. Musí to být formátovaná třída nebo struktura.

Parametry

ptr
IntPtr

nativeint

Ukazatel na nespravovaný blok paměti.

Návraty

T

Spravovaný objekt, který obsahuje data, na která ptr parametr odkazuje.

Atributy

Výjimky

Rozložení T není sekvenční ani explicitní.

Třída zadaná T parametrem nemá přístupný konstruktor bez parametrů.

Poznámky

PtrToStructure<T>(IntPtr) je často nezbytné v volat zprostředkovatele komunikace modelu COM a platformy, pokud jsou parametry struktury reprezentovány jako System.IntPtr hodnoty. Do tohoto přetížení metody můžete předat typ hodnoty. Pokud se ptr parametr rovná IntPtr.Zero a T je referenčním typem, null vrátí se. Pokud ptr se rovná IntPtr.Zero a T je typ hodnoty, NullReferenceException je vyvolán.

Platí pro

PtrToStructure<T>(IntPtr, T)

Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs

Zařazuje data z nespravovaného bloku paměti do spravovaného objektu zadaného typu.

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)

Parametry typu

T

Typ structure. Musí to být formátovaná třída.

Parametry

ptr
IntPtr

nativeint

Ukazatel na nespravovaný blok paměti.

structure
T

Objekt, do kterého se mají data zkopírovat.

Atributy

Výjimky

Rozložení struktury není sekvenční ani explicitní.

Poznámky

PtrToStructure<T>(IntPtr, T) je často nezbytné v volat zprostředkovatele komunikace modelu COM a platformy, pokud jsou parametry struktury reprezentovány jako IntPtr hodnoty. Toto přetížení metody nelze použít s typy hodnot. Pokud se ptr parametr rovná IntPtr.Zero a T je referenčním typem, null vrátí se. Pokud ptr se rovná IntPtr.Zero a T je typ hodnoty, NullReferenceException je vyvolán.

Platí pro