Marshal.PtrToStructure Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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.