Marshal.PtrToStructure Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Faz marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado.
Sobrecargas
| Nome | Description |
|---|---|
| PtrToStructure(IntPtr, Object) |
Obsoleto.
Faz marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado. |
| PtrToStructure(IntPtr, Type) |
Obsoleto.
Faz marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado recém-alocado do tipo especificado. |
| PtrToStructure<T>(IntPtr) |
Faz marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado recém-alocado do tipo especificado por um parâmetro de tipo genérico. |
| PtrToStructure<T>(IntPtr, T) |
Faz marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado do tipo especificado. |
PtrToStructure(IntPtr, Object)
Cuidado
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
Faz marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado.
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);
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.Security.SecurityCritical]
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
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
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * obj -> unit
Public Shared Sub PtrToStructure (ptr As IntPtr, structure As Object)
Parâmetros
- ptr
-
IntPtr
nativeint
Um ponteiro para um bloco de memória não gerenciado.
- structure
- Object
O objeto para o qual os dados devem ser copiados. Essa deve ser uma instância de uma classe formatada.
- Atributos
Exceções
O layout da estrutura não é sequencial ou explícito.
-ou-
Estrutura é um tipo de valor em caixa.
Comentários
PtrToStructure geralmente é necessário na interoperabilidade COM e na invocação de plataforma quando os parâmetros de estrutura são representados como um System.IntPtr valor. Você não pode usar esse método de sobrecarga com tipos de valor.
Se o ptr parâmetro for igual IntPtr.Zero, null será retornado.
Aplica-se a
PtrToStructure(IntPtr, Type)
Cuidado
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
Faz marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado recém-alocado do tipo especificado.
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);
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.Security.SecurityCritical]
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
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
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint * Type -> obj
Public Shared Function PtrToStructure (ptr As IntPtr, structureType As Type) As Object
Parâmetros
- ptr
-
IntPtr
nativeint
Um ponteiro para um bloco de memória não gerenciado.
- structureType
- Type
O tipo de objeto a ser criado. Esse objeto deve representar uma classe formatada ou uma estrutura.
Retornos
Um objeto gerenciado que contém os dados apontados pelo ptr parâmetro.
- Atributos
Exceções
O structureType layout do parâmetro não é sequencial ou explícito.
-ou-
O structureType parâmetro é uma definição de tipo genérico.
structureType é null.
A classe especificada por structureType não tem um construtor acessível sem parâmetros.
Comentários
PtrToStructure geralmente é necessário na interoperabilidade COM e na invocação de plataforma quando os parâmetros de estrutura são representados como um System.IntPtr valor. Você pode passar um tipo de valor para esse método de sobrecarga. Nesse caso, o objeto retornado é uma instância em caixa.
Se o ptr parâmetro for igual IntPtr.Zero, null será retornado.
Confira também
Aplica-se a
PtrToStructure<T>(IntPtr)
Faz marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado recém-alocado do tipo especificado por um parâmetro de tipo genérico.
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);
[<System.Security.SecurityCritical>]
static member PtrToStructure : nativeint -> 'T
static member PtrToStructure : nativeint -> 'T
Public Shared Function PtrToStructure(Of T) (ptr As IntPtr) As T
Parâmetros de tipo
- T
O tipo do objeto para o qual os dados devem ser copiados. Deve ser uma classe formatada ou uma estrutura.
Parâmetros
- ptr
-
IntPtr
nativeint
Um ponteiro para um bloco de memória não gerenciado.
Retornos
Um objeto gerenciado que contém os dados para os quais o ptr parâmetro aponta.
- Atributos
Exceções
O layout não T é sequencial ou explícito.
A classe especificada por T não tem um construtor acessível sem parâmetros.
Comentários
PtrToStructure<T>(IntPtr) geralmente é necessário na interoperabilidade COM e na invocação de plataforma quando os parâmetros de estrutura são representados como System.IntPtr valores. Você pode passar um tipo de valor para essa sobrecarga de método.
Se o ptr parâmetro for igual IntPtr.Zero e T for um tipo de referência, null será retornado. Se ptr for igual IntPtr.Zero e T for um tipo de valor, um NullReferenceException será gerado.
Aplica-se a
PtrToStructure<T>(IntPtr, T)
Faz marshaling de dados de um bloco de memória não gerenciado para um objeto gerenciado do tipo especificado.
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)
Parâmetros de tipo
- T
O tipo de structure. Essa deve ser uma classe formatada.
Parâmetros
- ptr
-
IntPtr
nativeint
Um ponteiro para um bloco de memória não gerenciado.
- structure
- T
O objeto para o qual os dados devem ser copiados.
- Atributos
Exceções
O layout da estrutura não é sequencial ou explícito.
Comentários
PtrToStructure<T>(IntPtr, T) geralmente é necessário na interoperabilidade COM e na invocação de plataforma quando os parâmetros de estrutura são representados como IntPtr valores. Você não pode usar essa sobrecarga de método com tipos de valor.
Se o ptr parâmetro for igual IntPtr.Zero e T for um tipo de referência, null será retornado. Se ptr for igual IntPtr.Zero e T for um tipo de valor, um NullReferenceException será gerado.