Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

Marshal.GetFunctionPointerForDelegate Method (Delegate)

Note: This API is now obsolete.

Converts a delegate into a function pointer that is callable from unmanaged code.

Namespace:  System.Runtime.InteropServices
Assemblies:   System.Runtime.InteropServices (in System.Runtime.InteropServices.dll)
  mscorlib (in mscorlib.dll)

[ObsoleteAttribute("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")]
public static IntPtr GetFunctionPointerForDelegate(
	Delegate d
)

Parameters

d
Type: System.Delegate

The delegate to be passed to unmanaged code.

Return Value

Type: System.IntPtr
A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.

ExceptionCondition
ArgumentException

The d parameter is a generic type.

ArgumentNullException

The d parameter is null.

The delegate d is converted to a function pointer that can be passed to unmanaged code using the __stdcall calling convention.

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.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0
Obsolete (compiler warning) in 4.6

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8

  • SecurityCriticalAttribute 

    requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Show:
© 2015 Microsoft