Marshal.GetDelegateForFunctionPointer Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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
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++.