Marshal.GetDelegateForFunctionPointer Método

Definición

Sobrecargas

Nombre Description
GetDelegateForFunctionPointer(IntPtr, Type)
Obsoletos.

Convierte un puntero de función no administrada a un delegado.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Convierte un puntero de función no administrado a un delegado de un tipo especificado.

GetDelegateForFunctionPointer(IntPtr, Type)

Precaución

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

Convierte un puntero de función no administrada a un 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

Puntero de función no administrada que se va a convertir.

t
Type

Tipo del delegado que se va a devolver.

Devoluciones

Instancia de delegado que se puede convertir al tipo de delegado adecuado.

Atributos

Excepciones

El t parámetro no es un delegado o es genérico.

El ptr parámetro es null.

O bien

El t parámetro es null.

Comentarios

Puede usar los GetDelegateForFunctionPointer métodos y GetFunctionPointerForDelegate para serializar delegados en ambas direcciones. Con GetDelegateForFunctionPointer, ptr se importa como .System.IntPtr System.IntPtr Se puede obtener para un delegado administrado llamando GetFunctionPointerForDelegate a y pasando como parámetro; a continuación, se puede llamar desde dentro del método no administrado. Tenga en cuenta que el serializador de parámetros también puede serializar punteros de función a delegados.

ptr se convierte en un delegado que invoca el método no administrado mediante la convención de llamada de plataforma predeterminada. Puede establecer la convención de llamada aplicando al UnmanagedFunctionPointerAttribute delegado.

El GetDelegateForFunctionPointer método tiene las restricciones siguientes:

  • Los genéricos no se admiten en escenarios de interoperabilidad.
  • Este método solo se puede usar para punteros de función no administrados puros.
  • No se puede usar este método con punteros de función obtenidos a través de C++.

Se aplica a

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Convierte un puntero de función no administrado a un delegado de un 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

TDelegate

Tipo del delegado que se va a devolver.

Parámetros

ptr
IntPtr

nativeint

Puntero de función no administrada que se va a convertir.

Devoluciones

TDelegate

Instancia del tipo de delegado especificado.

Atributos

Excepciones

El TDelegate parámetro genérico no es un delegado o es un tipo genérico abierto.

El ptr parámetro es null.

Comentarios

Puede usar los GetDelegateForFunctionPointer<TDelegate>(IntPtr) métodos y GetFunctionPointerForDelegate<TDelegate>(TDelegate) para serializar delegados en ambas direcciones.

ptr se convierte en un delegado que invoca el método no administrado mediante la convención de llamada de plataforma predeterminada. Puede establecer la convención de llamada aplicando al UnmanagedFunctionPointerAttribute delegado.

El GetDelegateForFunctionPointer<TDelegate>(IntPtr) método tiene las restricciones siguientes:

  • Los genéricos no se admiten en escenarios de interoperabilidad.
  • Este método solo se puede usar para punteros de función no administrados puros.
  • No se puede usar este método con punteros de función obtenidos a través de C++.

Se aplica a