Marshal.GetDelegateForFunctionPointer メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Marshal.GetDelegateForFunctionPointer メソッドの意味・解説 

Marshal.GetDelegateForFunctionPointer メソッド

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

アンマネージ関数ポインタをデリゲートに変換します。

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Shared Function GetDelegateForFunctionPointer
 ( _
    ptr As IntPtr, _
    t As Type _
) As Delegate
Dim ptr As IntPtr
Dim t As Type
Dim returnValue As Delegate

returnValue = Marshal.GetDelegateForFunctionPointer(ptr, t)
public static Delegate GetDelegateForFunctionPointer
 (
    IntPtr ptr,
    Type t
)
public:
static Delegate^ GetDelegateForFunctionPointer (
    IntPtr ptr, 
    Type^ t
)
public static Delegate GetDelegateForFunctionPointer
 (
    IntPtr ptr, 
    Type t
)
public static function GetDelegateForFunctionPointer
 (
    ptr : IntPtr, 
    t : Type
) : Delegate

パラメータ

ptr

変換されるアンマネージ関数ポインタである System.IntPtr 型。

t

返されるデリゲートの型。

戻り値
適切なデリゲート型にキャストできるデリゲート インスタンス。

例外例外
例外の種類条件

ArgumentException

t パラメータがデリゲートではありません。

ArgumentNullException

ptr パラメータが null 参照 (Visual Basic では Nothing) です。

または

t パラメータが null 参照 (Visual Basic では Nothing) です。

解説解説

.NET Framework Version 1.0 および 1.1 では、マネージ メソッドを表すデリゲートを関数ポインタとしてアンマネージ コードに渡すことができたため、アンマネージ コードは関数ポインタからマネージ メソッドを呼び出すことができました。また、アンマネージ コードは、その関数ポインタをマネージ コードに渡すことができ、ポインタは基になるマネージ メソッドに適切に解決されました。

この新しいメソッド GetDelegateForFunctionPointer と、もう 1 つの新しいメソッド GetFunctionPointerForDelegate を使用することによって、デリゲートを双方向にマーシャリングできるようになりました。GetDelegateForFunctionPointer では、ptr は IntPtr としてインポートされます。GetFunctionPointerForDelegate を呼び出すことによって、マネージ デリゲートに対して IntPtr を取得し、パラメータとして渡した後、アンマネージ メソッド内部から呼び出すことができます。Version 2.0 では、パラメータ マーシャラは関数ポインタをデリゲートにマーシャリングすることもできます。

メモメモ

GetDelegateForFunctionPointer に無効な関数ポインタを渡すことはできません。また、このメソッドを使用できるのは、純粋なアンマネージ関数ポインタに対してだけです。C++ または GetFunctionPointer から取得した関数ポインタでこのメソッドを使用することはできません。このメソッドを使用して、関数ポインタから別のマネージ デリゲートへのデリゲートを作成することはできません。

.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

Marshal.GetDelegateForFunctionPointer メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Marshal.GetDelegateForFunctionPointer メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS