Share via


デリゲートとアンマネージ関数ポインタのラップ

更新 : 2007 年 11 月

.NET Framework Version 2.0 以降は、次のメソッドを使用して、関数ポインタをマーシャリングする機能をマネージとアンマネージ コード間に提供します。

  • アンマネージ関数ポインタをデリゲートにマーシャリングする場合は、Marshal.GetDelegateForFunctionPointer メソッドを使用します。このメソッドは、System.IntPtr クラスを使用してアンマネージ関数ポインタを表します。

  • デリゲートをアンマネージ コードから呼び出すことができる関数ポインタにマーシャリングする場合は、Marshal.GetFunctionPointerForDelegate メソッドを使用します。このメソッドを使用するときは、手動でガベージ コレクタによってデリゲートが回収されないようにする必要があります。ガベージ コレクタは、アンマネージ コードの参照を追跡しません。

.NET Framework 2.0 以降です、パラメータ マーシャラも関数ポインタをデリゲートにマーシャリングできます。

参照

参照

GetDelegateForFunctionPointer

GetFunctionPointerForDelegate