Marshal.GetDelegateForFunctionPointer 方法     
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| GetDelegateForFunctionPointer(IntPtr, Type) | 
							 
		已过时.
	 
将非托管函数指针转换为委托。  | 
        	
| GetDelegateForFunctionPointer<TDelegate>(IntPtr) | 
						 将非托管函数指针转换为指定类型的委托。  | 
        	
GetDelegateForFunctionPointer(IntPtr, Type)
- Source:
 - Marshal.cs
 
- Source:
 - Marshal.cs
 
- Source:
 - Marshal.cs
 
注意
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
将非托管函数指针转换为委托。
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
	参数
- ptr
 - 
				
				IntPtr
nativeint
 
要转换的非托管函数指针。
- t
 - Type
 
要返回的委托的类型。
返回
可转换为适当的委托类型的委托实例。
- 属性
 
例外
              t 参数不是委托或泛型。
注解
可以使用 GetDelegateForFunctionPointer 和 GetFunctionPointerForDelegate 方法在两个方向封送委托。 使用 GetDelegateForFunctionPointer时, ptr 将作为 System.IntPtr导入。 
              System.IntPtr可以通过调用 GetFunctionPointerForDelegate 来获取托管委托的 并将其作为参数传递;然后可以从非托管方法内部调用它。 请注意,参数封送处理器还可以封送指向 .NET Framework 2.0 及更高版本中委托的函数指针。
              ptr 转换为使用 默认平台调用约定调用非托管方法的委托。 可以通过将 应用于 UnmanagedFunctionPointerAttribute 委托来设置调用约定。
方法 GetDelegateForFunctionPointer 具有以下限制:
互操作方案中不支持泛型。
只能将此方法用于纯非托管函数指针。
不能将此方法用于通过 C++ 获取的函数指针。
适用于
GetDelegateForFunctionPointer<TDelegate>(IntPtr)
- Source:
 - Marshal.cs
 
- Source:
 - Marshal.cs
 
- Source:
 - Marshal.cs
 
将非托管函数指针转换为指定类型的委托。
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
    类型参数
- TDelegate
 
要返回的委托的类型。
参数
- ptr
 - 
				
				IntPtr
nativeint
 
要转换的非托管函数指针。
返回
指定委托类型的实例。
- 属性
 
例外
              TDelegate 泛型参数不是代理,或者它是开放式泛型类型。
              ptr 参数为 null。
注解
可以使用 GetDelegateForFunctionPointer<TDelegate>(IntPtr) 和 GetFunctionPointerForDelegate<TDelegate>(TDelegate) 方法在两个方向封送委托。
              ptr 转换为使用 默认平台调用约定调用非托管方法的委托。 可以通过将 应用于 UnmanagedFunctionPointerAttribute 委托来设置调用约定。
方法 GetDelegateForFunctionPointer<TDelegate>(IntPtr) 具有以下限制:
互操作方案中不支持泛型。
只能将此方法用于纯非托管函数指针。
不能将此方法用于通过 C++ 获取的函数指针。