Marshal.GetDelegateForFunctionPointer 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.
Sobrecargas
| Name | Description |
|---|---|
| GetDelegateForFunctionPointer(IntPtr, Type) |
Obsoleto.
Converte um ponteiro de função não gerida num delegado. |
| GetDelegateForFunctionPointer<TDelegate>(IntPtr) |
Converte um ponteiro de função não gerido num delegado de um tipo especificado. |
GetDelegateForFunctionPointer(IntPtr, Type)
Atenção
GetDelegateForFunctionPointer(IntPtr, Type) may be unavailable in future releases. Instead, use GetDelegateForFunctionPointer<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296521
Converte um ponteiro de função não gerida num delegado.
public:
static Delegate ^ GetDelegateForFunctionPointer(IntPtr ptr, Type ^ t);
[System.Obsolete("GetDelegateForFunctionPointer(IntPtr, Type) may be unavailable in future releases. Instead, use GetDelegateForFunctionPointer<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296521")]
[System.Security.SecurityCritical]
public static Delegate GetDelegateForFunctionPointer(IntPtr ptr, Type t);
public static Delegate GetDelegateForFunctionPointer(IntPtr ptr, Type t);
[System.Security.SecurityCritical]
public static Delegate GetDelegateForFunctionPointer(IntPtr ptr, Type t);
[<System.Obsolete("GetDelegateForFunctionPointer(IntPtr, Type) may be unavailable in future releases. Instead, use GetDelegateForFunctionPointer<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296521")>]
[<System.Security.SecurityCritical>]
static member GetDelegateForFunctionPointer : nativeint * Type -> Delegate
static member GetDelegateForFunctionPointer : nativeint * Type -> Delegate
[<System.Security.SecurityCritical>]
static member GetDelegateForFunctionPointer : nativeint * Type -> Delegate
Public Shared Function GetDelegateForFunctionPointer (ptr As IntPtr, t As Type) As Delegate
Parâmetros
- ptr
-
IntPtr
nativeint
O ponteiro da função não gerida a converter.
- t
- Type
O tipo de delegado a ser eleito.
Devoluções
Uma instância de delegado que pode ser lançada para o tipo de delegado apropriado.
- Atributos
Exceções
O t parâmetro não é um delegado nem é genérico.
Observações
Podes usar os GetDelegateForFunctionPointer métodos e GetFunctionPointerForDelegate para organizar delegados em ambas as direções. Com GetDelegateForFunctionPointer, ptr é importado como um System.IntPtr. A System.IntPtr pode ser obtido para um delegado gerido chamando GetFunctionPointerForDelegate e passado como parâmetro; pode então ser chamado a partir de dentro do método não gerido. Note que o marshaler de parâmetros também pode enviar apontadores de função para delegados.
ptr é convertido num delegado que invoca o método não gerido usando a convenção de chamada de plataforma por defeito. Pode definir a convenção de chamada aplicando o UnmanagedFunctionPointerAttribute ao delegado.
O GetDelegateForFunctionPointer método tem as seguintes restrições:
- Genéricos não são suportados em cenários de interoperabilidade.
- Pode usar este método apenas para ponteiros de função puramente não geridos.
- Não pode usar este método com ponteiros de função obtidos através de C++.
Aplica-se a
GetDelegateForFunctionPointer<TDelegate>(IntPtr)
Converte um ponteiro de função não gerido num delegado de um tipo especificado.
public:
generic <typename TDelegate>
static TDelegate GetDelegateForFunctionPointer(IntPtr ptr);
[System.Security.SecurityCritical]
public static TDelegate GetDelegateForFunctionPointer<TDelegate>(IntPtr ptr);
public static TDelegate GetDelegateForFunctionPointer<TDelegate>(IntPtr ptr);
[<System.Security.SecurityCritical>]
static member GetDelegateForFunctionPointer : nativeint -> 'Delegate
static member GetDelegateForFunctionPointer : nativeint -> 'Delegate
Public Shared Function GetDelegateForFunctionPointer(Of TDelegate) (ptr As IntPtr) As TDelegate
Parâmetros de Tipo Genérico
- TDelegate
O tipo de delegado que regressa.
Parâmetros
- ptr
-
IntPtr
nativeint
O apontador da função não gerida para converter.
Devoluções
Uma instância do tipo de delegado especificado.
- Atributos
Exceções
O TDelegate parâmetro genérico não é um delegado, ou é um tipo genérico aberto.
O ptr parâmetro é null.
Observações
Podes usar os GetDelegateForFunctionPointer<TDelegate>(IntPtr) métodos e GetFunctionPointerForDelegate<TDelegate>(TDelegate) para organizar delegados em ambas as direções.
ptr é convertido num delegado que invoca o método não gerido usando a convenção de chamada de plataforma por defeito. Pode definir a convenção de chamada aplicando o UnmanagedFunctionPointerAttribute ao delegado.
O GetDelegateForFunctionPointer<TDelegate>(IntPtr) método tem as seguintes restrições:
- Genéricos não são suportados em cenários de interoperabilidade.
- Pode usar este método apenas para ponteiros de função puramente não geridos.
- Não pode usar este método com ponteiros de função obtidos através de C++.