Marshal.GetDelegateForFunctionPointer メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim ptr As IntPtr Dim t As Type Dim returnValue As Delegate returnValue = Marshal.GetDelegateForFunctionPointer(ptr, t)
戻り値
適切なデリゲート型にキャストできるデリゲート インスタンス。


.NET Framework Version 1.0 および 1.1 では、マネージ メソッドを表すデリゲートを関数ポインタとしてアンマネージ コードに渡すことができたため、アンマネージ コードは関数ポインタからマネージ メソッドを呼び出すことができました。また、アンマネージ コードは、その関数ポインタをマネージ コードに渡すことができ、ポインタは基になるマネージ メソッドに適切に解決されました。
この新しいメソッド GetDelegateForFunctionPointer と、もう 1 つの新しいメソッド GetFunctionPointerForDelegate を使用することによって、デリゲートを双方向にマーシャリングできるようになりました。GetDelegateForFunctionPointer では、ptr は IntPtr としてインポートされます。GetFunctionPointerForDelegate を呼び出すことによって、マネージ デリゲートに対して IntPtr を取得し、パラメータとして渡した後、アンマネージ メソッド内部から呼び出すことができます。Version 2.0 では、パラメータ マーシャラは関数ポインタをデリゲートにマーシャリングすることもできます。
![]() |
---|
GetDelegateForFunctionPointer に無効な関数ポインタを渡すことはできません。また、このメソッドを使用できるのは、純粋なアンマネージ関数ポインタに対してだけです。C++ または GetFunctionPointer から取得した関数ポインタでこのメソッドを使用することはできません。このメソッドを使用して、関数ポインタから別のマネージ デリゲートへのデリゲートを作成することはできません。 |

- SecurityPermission (アンマネージ コードを呼び出すために必要なアクセス許可)。 UnmanagedCode (関連する列挙体)。LinkDemand (セキュリティ アクション)。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からMarshal.GetDelegateForFunctionPointer メソッドを検索する場合は、下記のリンクをクリックしてください。

- Marshal.GetDelegateForFunctionPointer メソッドのページへのリンク