Marshal.GetFunctionPointerForDelegate Método

Definición

Sobrecargas

GetFunctionPointerForDelegate(Delegate)
Obsoleto.

Convierte un delegado en un puntero a función invocable desde código no administrado.Converts a delegate into a function pointer that is callable from unmanaged code.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

[Compatible con .NET Framework 4.5.1 y versiones posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Convierte un delegado de un tipo especificado en un puntero a función invocable desde código no administrado.Converts a delegate of a specified type to a function pointer that is callable from unmanaged code.

GetFunctionPointerForDelegate(Delegate)

Precaución

GetFunctionPointerForDelegate(Delegate) may be unavailable in future releases. Instead, use GetFunctionPointerForDelegate(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296522

Convierte un delegado en un puntero a función invocable desde código no administrado.Converts a delegate into a function pointer that is callable from unmanaged code.

public:
 static IntPtr GetFunctionPointerForDelegate(Delegate ^ d);
[System.Obsolete("GetFunctionPointerForDelegate(Delegate) may be unavailable in future releases. Instead, use GetFunctionPointerForDelegate<T>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296522")]
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate (Delegate d);
public static IntPtr GetFunctionPointerForDelegate (Delegate d);
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate (Delegate d);
[<System.Obsolete("GetFunctionPointerForDelegate(Delegate) may be unavailable in future releases. Instead, use GetFunctionPointerForDelegate<T>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296522")>]
[<System.Security.SecurityCritical>]
static member GetFunctionPointerForDelegate : Delegate -> nativeint
static member GetFunctionPointerForDelegate : Delegate -> nativeint
[<System.Security.SecurityCritical>]
static member GetFunctionPointerForDelegate : Delegate -> nativeint
Public Shared Function GetFunctionPointerForDelegate (d As Delegate) As IntPtr

Parámetros

d
Delegate

Delegado que se va a pasar a código no administrado.The delegate to be passed to unmanaged code.

Devoluciones

IntPtr

Valor que se puede pasar a código no administrado que, a su vez, puede utilizarlo para llamar al delegado administrado subyacente.A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.

Atributos

Excepciones

El parámetro d es una definición de tipo genérico.The d parameter is a generic type definition.

El parámetro d es null.The d parameter is null.

Comentarios

El delegado d se convierte en un puntero de función que se puede pasar a código no administrado mediante la Convención de llamada de __Stdcall en Windows o la convención de llamada __Cdecl en Linux y MacOS.The delegate d is converted to a function pointer that can be passed to unmanaged code using the __stdcall calling convention on Windows, or the __cdecl calling convention on Linux and macOS. Puede establecer la Convención de llamada aplicando UnmanagedFunctionPointerAttribute al delegado.You can set the calling convention by applying the UnmanagedFunctionPointerAttribute to the delegate.

Debe impedir que el recolector de elementos no utilizados recopile el delegado de forma manual desde el código administrado.You must manually keep the delegate from being collected by the garbage collector from managed code. El recolector de elementos no utilizados no realiza un seguimiento de las referencias a código no administrado.The garbage collector does not track references to unmanaged code.

Se aplica a

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

[Compatible con .NET Framework 4.5.1 y versiones posteriores][Supported in the .NET Framework 4.5.1 and later versions]

Convierte un delegado de un tipo especificado en un puntero a función invocable desde código no administrado.Converts a delegate of a specified type to a function pointer that is callable from unmanaged code.

public:
generic <typename TDelegate>
 static IntPtr GetFunctionPointerForDelegate(TDelegate d);
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate<TDelegate> (TDelegate d);
public static IntPtr GetFunctionPointerForDelegate<TDelegate> (TDelegate d);
[<System.Security.SecurityCritical>]
static member GetFunctionPointerForDelegate : 'Delegate -> nativeint
static member GetFunctionPointerForDelegate : 'Delegate -> nativeint
Public Shared Function GetFunctionPointerForDelegate(Of TDelegate) (d As TDelegate) As IntPtr

Parámetros de tipo

TDelegate

Tipo de delegado que se va a convertir.The type of delegate to convert.

Parámetros

d
TDelegate

Delegado que se va a pasar a código no administrado.The delegate to be passed to unmanaged code.

Devoluciones

IntPtr

Valor que se puede pasar a código no administrado que, a su vez, puede utilizarlo para llamar al delegado administrado subyacente.A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.

Atributos

Excepciones

El parámetro d es una definición de tipo genérico.The d parameter is a generic type definition.

El parámetro d es null.The d parameter is null.

Comentarios

El delegado d se convierte en un puntero de función que se puede pasar a código no administrado mediante la Convención de llamada de __Stdcall en Windows o la convención de llamada __Cdecl en Linux y MacOS.The delegate d is converted to a function pointer that can be passed to unmanaged code by using the __stdcall calling convention on Windows, or the __cdecl calling convention on Linux and macOS. Puede establecer la Convención de llamada aplicando UnmanagedFunctionPointerAttribute al delegado.You can set the calling convention by applying the UnmanagedFunctionPointerAttribute to the delegate.

Debe impedir que el recolector de elementos no utilizados recopile el delegado de forma manual desde el código administrado.You must manually keep the delegate from being collected by the garbage collector from managed code. El recolector de elementos no utilizados no realiza un seguimiento de las referencias a código no administrado.The garbage collector does not track references to unmanaged code.

Se aplica a