Marshal.GetFunctionPointerForDelegate Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
GetFunctionPointerForDelegate(Delegate) |
Obsolete.
Converts a delegate into a function pointer that is callable from unmanaged code. |
GetFunctionPointerForDelegate<TDelegate>(TDelegate) |
Converts a delegate of a specified type to a function pointer that is callable from unmanaged code. |
GetFunctionPointerForDelegate(Delegate)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
Caution
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
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
Parameters
- d
- Delegate
The delegate to be passed to unmanaged code.
Returns
nativeint
A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.
- Attributes
Exceptions
The d
parameter is a generic type definition.
The d
parameter is null
.
Remarks
The delegate d
is converted to a function pointer that can be passed to unmanaged code using the default platform calling convention. You can set the calling convention by applying the UnmanagedFunctionPointerAttribute to the delegate.
You must manually keep the delegate from being collected by the garbage collector from managed code. The garbage collector does not track references to unmanaged code.
Applies to
GetFunctionPointerForDelegate<TDelegate>(TDelegate)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
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
Type Parameters
- TDelegate
The type of delegate to convert.
Parameters
- d
- TDelegate
The delegate to be passed to unmanaged code.
Returns
nativeint
A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.
- Attributes
Exceptions
The d
parameter is a generic type definition.
The d
parameter is null
.
Remarks
The delegate d
is converted to a function pointer that can be passed to unmanaged code by using the default platform calling convention. You can set the calling convention by applying the UnmanagedFunctionPointerAttribute to the delegate.
You must manually keep the delegate from being collected by the garbage collector from managed code. The garbage collector does not track references to unmanaged code.