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
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)
- Origine:
- Marshal.cs
- Origine:
- Marshal.cs
- Origine:
- Marshal.cs
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 alla funzione non gestita da convertire.
- t
- Type
Tipo di delegato da restituire.
Restituisce
Istanza di delegato di cui è possibile eseguire il cast al tipo di delegato appropriato.
- Attributi
Eccezioni
Il parametro t
non è un delegato o è generico.
Il valore del parametro ptr
è null
.
-oppure-
Il valore del parametro t
è null
.
Commenti
È possibile usare i metodi e GetFunctionPointerForDelegate per eseguire il marshalling dei delegati in entrambe le GetDelegateForFunctionPointer 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 marshalling dei parametri può anche eseguire il marshalling dei puntatori alle funzioni ai delegati in .NET Framework 2.0 e versioni successive.
ptr
viene convertito in un delegato che richiama il metodo non gestito usando la convenzione di chiamata alla piattaforma predefinita. È possibile impostare la convenzione chiamante applicando l'oggetto UnmanagedFunctionPointerAttribute al 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 funzioni non gestiti puri.
Non è possibile usare questo metodo con puntatori di funzione ottenuti tramite C++.
Si applica a
GetDelegateForFunctionPointer<TDelegate>(IntPtr)
- Origine:
- Marshal.cs
- Origine:
- Marshal.cs
- Origine:
- Marshal.cs
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 alla funzione non gestita da convertire.
Restituisce
Istanza del tipo di delegato specificato.
- Attributi
Eccezioni
Il parametro generico TDelegate
non è un delegato oppure è un tipo generico aperto.
Il valore del parametro ptr
è null
.
Commenti
È possibile usare i metodi e GetFunctionPointerForDelegate<TDelegate>(TDelegate) per eseguire il marshalling dei delegati in entrambe le GetDelegateForFunctionPointer<TDelegate>(IntPtr) 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 chiamante applicando l'oggetto UnmanagedFunctionPointerAttribute al 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 funzioni non gestiti puri.
Non è possibile usare questo metodo con puntatori di funzione ottenuti tramite C++.