デリゲートとアンマネージ関数ポインターのラップ
.NET Framework Version 2.0 以降は、次のメソッドを使用して、関数ポインターをマーシャリングする機能をマネージとアンマネージ コード間に提供します。
アンマネージ関数ポインターをデリゲートにマーシャリングする場合は、Marshal.GetDelegateForFunctionPointer メソッドを使用します。 このメソッドは、System.IntPtr クラスを使用してアンマネージ関数ポインターを表します。
デリゲートをアンマネージ コードから呼び出すことができる関数ポインターにマーシャリングする場合は、Marshal.GetFunctionPointerForDelegate メソッドを使用します。 このメソッドを使用するときは、手動でガベージ コレクターによってデリゲートが回収されないようにする必要があります。 ガベージ コレクターは、アンマネージ コードの参照を追跡しません。
.NET Framework 2.0 以降です、パラメーター マーシャラーも関数ポインターをデリゲートにマーシャリングできます。