Marshal.GetDelegateForFunctionPointer Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| GetDelegateForFunctionPointer(IntPtr, Type) |
Obsoleti.
Converte un puntatore a funzione non gestito in un delegato. |
| GetDelegateForFunctionPointer<TDelegate>(IntPtr) |
Converte un puntatore a funzione non gestito in un delegato di un tipo specificato. |
GetDelegateForFunctionPointer(IntPtr, Type)
Attenzione
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 un puntatore a funzione non gestito in un delegato.
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
Parametri
- ptr
-
IntPtr
nativeint
Puntatore a funzione non gestito da convertire.
- t
- Type
Tipo del delegato da restituire.
Valori restituiti
Istanza del delegato di cui è possibile eseguire il cast al tipo delegato appropriato.
- Attributi
Eccezioni
Il t parametro non è un delegato o è generico.
Commenti
È possibile usare i metodi e GetFunctionPointerForDelegate per effettuare il GetDelegateForFunctionPointer marshalling dei delegati in entrambe le direzioni. Con GetDelegateForFunctionPointer, ptr viene importato come .System.IntPtr Un System.IntPtr oggetto può essere ottenuto per un delegato gestito chiamando GetFunctionPointerForDelegate e passato come parametro. Può quindi essere chiamato dall'interno del metodo non gestito. Si noti che il gestore di marshalling dei parametri può anche effettuare il marshalling dei puntatori a funzioni ai delegati.
ptr viene convertito in un delegato che richiama il metodo non gestito usando la convenzione di chiamata alla piattaforma predefinita. È possibile impostare la convenzione di chiamata applicando al UnmanagedFunctionPointerAttribute delegato.
Il GetDelegateForFunctionPointer metodo presenta le restrizioni seguenti:
- I generics non sono supportati negli scenari di interoperabilità.
- È possibile usare questo metodo solo per i puntatori a funzione non gestiti puri.
- Non è possibile usare questo metodo con puntatori a funzione ottenuti tramite C++.
Si applica a
GetDelegateForFunctionPointer<TDelegate>(IntPtr)
Converte un puntatore a funzione non gestito in un delegato di un tipo specificato.
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
Parametri di tipo
- TDelegate
Tipo del delegato da restituire.
Parametri
- ptr
-
IntPtr
nativeint
Puntatore a funzione non gestito da convertire.
Valori restituiti
Istanza del tipo delegato specificato.
- Attributi
Eccezioni
Il TDelegate parametro generico non è un delegato o è un tipo generico aperto.
Il ptr parametro è null.
Commenti
È possibile usare i metodi e GetFunctionPointerForDelegate<TDelegate>(TDelegate) per effettuare il GetDelegateForFunctionPointer<TDelegate>(IntPtr) marshalling dei delegati in entrambe le direzioni.
ptr viene convertito in un delegato che richiama il metodo non gestito usando la convenzione di chiamata alla piattaforma predefinita. È possibile impostare la convenzione di chiamata applicando al UnmanagedFunctionPointerAttribute delegato.
Il GetDelegateForFunctionPointer<TDelegate>(IntPtr) metodo presenta le restrizioni seguenti:
- I generics non sono supportati negli scenari di interoperabilità.
- È possibile usare questo metodo solo per i puntatori a funzione non gestiti puri.
- Non è possibile usare questo metodo con puntatori a funzione ottenuti tramite C++.