Condividi tramite


Marshal.GetDelegateForFunctionPointer Metodo

Definizione

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

TDelegate

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++.

Si applica a