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