Share via


Wrapping di delegati e puntatori a funzioni non gestiti

Aggiornamento: novembre 2007

In .NET Framework 2.0 e versioni successive è possibile eseguire il marshalling dei puntatori a funzioni tra codice gestito e non gestito utilizzando i seguenti metodi:

  • Utilizzare il metodo Marshal.GetDelegateForFunctionPointer per eseguire il marshalling di un puntatore a funzione non gestito in un delegato. Per rappresentare un puntatore a funzione non gestito, questo metodo utilizza la classe System.IntPtr.

  • Utilizzare il metodo Marshal.GetFunctionPointerForDelegate per eseguire il marshalling di un delegato in un puntatore a funzione chiamabile dal codice non gestito. Quando si utilizza questo metodo, è necessario impedire manualmente che il delegato sia sottoposto a Garbage Collection. Il Garbage Collector non tiene traccia dei riferimenti al codice non gestito.

In .NET Framework 2.0 e versioni successive il gestore di marshalling dei parametri è anche in grado di eseguire il marshalling dei puntatori a funzioni nei delegati.

Vedere anche

Riferimenti

GetDelegateForFunctionPointer

GetFunctionPointerForDelegate