Marshal.GetFunctionPointerForDelegate メソッド

定義

オーバーロード

GetFunctionPointerForDelegate(Delegate)
古い.

アンマネージ コードから呼び出すことができる関数ポインターにデリゲートを変換します。

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

指定した型のデリゲートをアンマネージ コードから呼び出すことができる関数ポインターに変換します。

GetFunctionPointerForDelegate(Delegate)

ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs

注意事項

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

アンマネージ コードから呼び出すことができる関数ポインターにデリゲートを変換します。

C#
[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);
C#
public static IntPtr GetFunctionPointerForDelegate(Delegate d);
C#
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate(Delegate d);

パラメーター

d
Delegate

アンマネージ コードに渡されるデリゲート。

戻り値

IntPtr

アンマネージド コードに渡すことができる値。アンマネージド コードはこの値を使用して、基になるマネージド デリゲートを呼び出すことができます。

属性

例外

d パラメーターがジェネリック型定義です。

d パラメーターが null です。

注釈

デリゲート d は、 既定のプラットフォーム呼び出し規則を使用してアンマネージ コードに渡すことができる関数ポインターに変換されます。 呼び出し規約を設定するには、 を UnmanagedFunctionPointerAttribute デリゲートに適用します。

マネージド コードからガベージ コレクターによってデリゲートが収集されないように手動で保持する必要があります。 ガベージ コレクターは、アンマネージ コードへの参照を追跡しません。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン (廃止)
.NET Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 (Core 1.0)
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 2.0, 2.1 (1.2, 1.3, 1.4, 1.5, 1.6)
UWP (10.0)

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

ソース:
Marshal.cs
ソース:
Marshal.cs
ソース:
Marshal.cs

指定した型のデリゲートをアンマネージ コードから呼び出すことができる関数ポインターに変換します。

C#
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate<TDelegate>(TDelegate d);
C#
public static IntPtr GetFunctionPointerForDelegate<TDelegate>(TDelegate d);

型パラメーター

TDelegate

変換するデリゲートの型。

パラメーター

d
TDelegate

アンマネージ コードに渡されるデリゲート。

戻り値

IntPtr

アンマネージド コードに渡すことができる値。アンマネージド コードはこの値を使用して、基になるマネージド デリゲートを呼び出すことができます。

属性

例外

d パラメーターがジェネリック型定義です。

d パラメーターが null です。

注釈

デリゲート d は、 既定のプラットフォーム呼び出し規則を使用してアンマネージ コードに渡すことができる関数ポインターに変換されます。 呼び出し規約を設定するには、 を UnmanagedFunctionPointerAttribute デリゲートに適用します。

マネージド コードからガベージ コレクターによってデリゲートが収集されないように手動で保持する必要があります。 ガベージ コレクターは、アンマネージ コードへの参照を追跡しません。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0