Marshal.GetDelegateForFunctionPointer メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
GetDelegateForFunctionPointer(IntPtr, Type) |
古い.
アンマネージ関数ポインターをデリゲートに変換します。 |
GetDelegateForFunctionPointer<TDelegate>(IntPtr) |
アンマネージ関数ポインターを指定した型のデリゲートに変換します。 |
GetDelegateForFunctionPointer(IntPtr, Type)
- ソース:
- Marshal.cs
- ソース:
- Marshal.cs
- ソース:
- 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
パラメーターは、デリゲートでもジェネリックでもありません。
注釈
メソッドと GetFunctionPointerForDelegate メソッドをGetDelegateForFunctionPointer使用して、デリゲートを双方向にマーシャリングできます。 ではGetDelegateForFunctionPointerptr
、 は としてSystem.IntPtrインポートされます。
System.IntPtrを呼び出GetFunctionPointerForDelegateしてパラメーターとして渡すことで、マネージド デリゲートの を取得できます。その後、アンマネージ メソッド内から呼び出すことができます。 パラメーター マーシャラーでは、.NET Framework 2.0 以降のバージョンのデリゲートへの関数ポインターをマーシャリングすることもできます。
ptr
は、既定のプラットフォーム呼び出し規則を使用してアンマネージ メソッド を呼び出すデリゲートに変換されます。 呼び出し規約を設定するには、 を UnmanagedFunctionPointerAttribute デリゲートに適用します。
GetDelegateForFunctionPointerメソッドには、次の制限があります。
ジェネリックは、相互運用シナリオではサポートされていません。
このメソッドは、純粋なアンマネージ関数ポインターに対してのみ使用できます。
このメソッドは、C++ を介して取得された関数ポインターでは使用できません。
適用対象
GetDelegateForFunctionPointer<TDelegate>(IntPtr)
- ソース:
- Marshal.cs
- ソース:
- Marshal.cs
- ソース:
- 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
です。
注釈
メソッドと GetFunctionPointerForDelegate<TDelegate>(TDelegate) メソッドをGetDelegateForFunctionPointer<TDelegate>(IntPtr)使用して、デリゲートを双方向にマーシャリングできます。
ptr
は、既定のプラットフォーム呼び出し規則を使用してアンマネージ メソッド を呼び出すデリゲートに変換されます。 呼び出し規約を設定するには、 を UnmanagedFunctionPointerAttribute デリゲートに適用します。
GetDelegateForFunctionPointer<TDelegate>(IntPtr)メソッドには、次の制限があります。
ジェネリックは、相互運用シナリオではサポートされていません。
このメソッドは、純粋なアンマネージ関数ポインターに対してのみ使用できます。
このメソッドは、C++ を介して取得された関数ポインターでは使用できません。
適用対象
.NET