Marshal.PtrToStructure Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Faz o escalão de dados de um bloco de memória não gerido para um objeto gerido.
Sobrecargas
| Name | Description |
|---|---|
| PtrToStructure(IntPtr, Object) |
Obsoleto.
Faz o escalão de dados de um bloco de memória não gerido para um objeto gerido. |
| PtrToStructure(IntPtr, Type) |
Obsoleto.
Faz o escalonamento de dados de um bloco de memória não gerido para um objeto gerido recém-alocado do tipo especificado. |
| PtrToStructure<T>(IntPtr) |
Organiza dados de um bloco não gerido de memória para um objeto gerido recém-alocado do tipo especificado por um parâmetro genérico de tipo. |
| PtrToStructure<T>(IntPtr, T) |
Faz o escalonamento de dados de um bloco de memória não gerido para um objeto gerido do tipo especificado. |
PtrToStructure(IntPtr, Object)
Atenção
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 o escalão de dados de um bloco de memória não gerido para um objeto gerido.
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 apontador para um bloco de memória não gerido.
- structure
- Object
O objeto para o qual os dados devem ser copiados. Isto deve ser uma instância de uma classe formatada.
- Atributos
Exceções
O layout da estrutura não é sequencial nem explícito.
-ou-
Estrutura é um tipo de valor em caixa.
Observações
PtrToStructure é frequentemente necessário em interoperabilidade COM e invocação de plataforma quando os parâmetros da estrutura são representados como um System.IntPtr valor. Não podes usar este método de sobrecarga com tipos de valor.
Se o ptr parâmetro for IntPtr.Zeroigual a , null será devolvido.
Aplica-se a
PtrToStructure(IntPtr, Type)
Atenção
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 o escalonamento de dados de um bloco de memória não gerido para um objeto gerido 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 apontador para um bloco de memória não gerido.
- structureType
- Type
O tipo de objeto a ser criado. Este objeto deve representar uma classe formatada ou uma estrutura.
Devoluções
Um objeto gerido contendo os dados apontados pelo ptr parâmetro.
- Atributos
Exceções
A structureType disposição dos parâmetros não é sequencial nem explícita.
-ou-
O structureType parâmetro é uma definição de tipo genérica.
structureType é null.
A classe especificada por structureType não possui um construtor sem parâmetros acessível.
Observações
PtrToStructure é frequentemente necessário em interoperabilidade COM e invocação de plataforma quando os parâmetros da estrutura são representados como um System.IntPtr valor. Podes passar um tipo de valor a este método de sobrecarga. Neste caso, o objeto devolvido é uma instância em caixa.
Se o ptr parâmetro for IntPtr.Zeroigual a , null será devolvido.
Ver também
Aplica-se a
PtrToStructure<T>(IntPtr)
Organiza dados de um bloco não gerido de memória para um objeto gerido recém-alocado do tipo especificado por um parâmetro genérico de tipo.
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 Genérico
- T
O tipo de objeto para o qual os dados devem ser copiados. Isto deve ser uma aula formatada ou uma estrutura.
Parâmetros
- ptr
-
IntPtr
nativeint
Um apontador para um bloco de memória não gerido.
Devoluções
Um objeto gerido que contém os dados para os quais o ptr parâmetro aponta.
- Atributos
Exceções
A disposição de T não é sequencial nem explícita.
A classe especificada por T não possui um construtor sem parâmetros acessível.
Observações
PtrToStructure<T>(IntPtr) é frequentemente necessário em interoperabilidade COM e invocação de plataforma quando os parâmetros da estrutura são representados como System.IntPtr valores. Podes passar um tipo de valor a esta sobrecarga de método.
Se o ptr parâmetro for IntPtr.Zero igual a e T for um tipo de referência, null é devolvido. Se ptr for IntPtr.Zero igual a e T for um tipo de valor, a NullReferenceException é lançado.
Aplica-se a
PtrToStructure<T>(IntPtr, T)
Faz o escalonamento de dados de um bloco de memória não gerido para um objeto gerido 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 Genérico
- T
O tipo de structure. Esta tem de ser uma aula formatada.
Parâmetros
- ptr
-
IntPtr
nativeint
Um apontador para um bloco de memória não gerido.
- structure
- T
O objeto para o qual os dados devem ser copiados.
- Atributos
Exceções
O layout da estrutura não é sequencial nem explícito.
Observações
PtrToStructure<T>(IntPtr, T) é frequentemente necessário em interoperabilidade COM e invocação de plataforma quando os parâmetros da estrutura são representados como IntPtr valores. Não podes usar esta sobrecarga de métodos com tipos de valor.
Se o ptr parâmetro for IntPtr.Zero igual a e T for um tipo de referência, null é devolvido. Se ptr for IntPtr.Zero igual a e T for um tipo de valor, a NullReferenceException é lançado.