Marshal.GetDelegateForFunctionPointer Yöntem

Tanım

Aşırı Yüklemeler

GetDelegateForFunctionPointer(IntPtr, Type)
Geçersiz.

Yönetilmeyen işlev işaretçisini temsilciye dönüştürür.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Yönetilmeyen işlev işaretçisini belirtilen türde bir temsilciye dönüştürür.

GetDelegateForFunctionPointer(IntPtr, Type)

Kaynak:
Marshal.cs
Kaynak:
Marshal.cs
Kaynak:
Marshal.cs

Dikkat

GetDelegateForFunctionPointer(IntPtr, Type) may be unavailable in future releases. Instead, use GetDelegateForFunctionPointer<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296521

Yönetilmeyen işlev işaretçisini temsilciye dönüştürür.

public:
 static Delegate ^ GetDelegateForFunctionPointer(IntPtr ptr, Type ^ t);
[System.Obsolete("GetDelegateForFunctionPointer(IntPtr, Type) may be unavailable in future releases. Instead, use GetDelegateForFunctionPointer<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296521")]
[System.Security.SecurityCritical]
public static Delegate GetDelegateForFunctionPointer (IntPtr ptr, Type t);
public static Delegate GetDelegateForFunctionPointer (IntPtr ptr, Type t);
[System.Security.SecurityCritical]
public static Delegate GetDelegateForFunctionPointer (IntPtr ptr, Type t);
[<System.Obsolete("GetDelegateForFunctionPointer(IntPtr, Type) may be unavailable in future releases. Instead, use GetDelegateForFunctionPointer<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296521")>]
[<System.Security.SecurityCritical>]
static member GetDelegateForFunctionPointer : nativeint * Type -> Delegate
static member GetDelegateForFunctionPointer : nativeint * Type -> Delegate
[<System.Security.SecurityCritical>]
static member GetDelegateForFunctionPointer : nativeint * Type -> Delegate
Public Shared Function GetDelegateForFunctionPointer (ptr As IntPtr, t As Type) As Delegate

Parametreler

ptr
IntPtr

nativeint

Dönüştürülecek yönetilmeyen işlev işaretçisi.

t
Type

Döndürülecek temsilcinin türü.

Döndürülenler

Uygun temsilci türüne atanabilen bir temsilci örneği.

Öznitelikler

Özel durumlar

t Parametre bir temsilci değil veya genel.

ptr parametresidirnull.

-veya-

t parametresidirnull.

Açıklamalar

Temsilcileri her iki yönde de sıralamak için ve GetFunctionPointerForDelegate yöntemlerini kullanabilirsinizGetDelegateForFunctionPointer. ptr ileGetDelegateForFunctionPointer, olarak System.IntPtriçeri aktarılır. System.IntPtr Yönetilen bir temsilci için parametresi çağrılarak GetFunctionPointerForDelegate ve geçirilerek elde edilebilir; ardından yönetilmeyen yöntemin içinden çağrılabilir. Parametre sıralayıcısının, .NET Framework 2.0 ve sonraki sürümlerdeki temsilcilere işlev işaretçilerini de sıralayabileceğinizi unutmayın.

ptr , varsayılan platform çağırma kuralını kullanarak yönetilmeyen yöntemi çağıran bir temsilciye dönüştürülür. çağrısı kuralını, öğesini temsilciye uygulayarak UnmanagedFunctionPointerAttribute ayarlayabilirsiniz.

GetDelegateForFunctionPointer yöntemi aşağıdaki kısıtlamalara sahiptir:

  • Genel öğeler birlikte çalışma senaryolarında desteklenmez.

  • Bu yöntemi yalnızca saf yönetilmeyen işlev işaretçileri için kullanabilirsiniz.

  • C++ aracılığıyla alınan işlev işaretçileriyle bu yöntemi kullanamazsınız.

Şunlara uygulanır

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Kaynak:
Marshal.cs
Kaynak:
Marshal.cs
Kaynak:
Marshal.cs

Yönetilmeyen işlev işaretçisini belirtilen türde bir temsilciye dönüştürür.

public:
generic <typename TDelegate>
 static TDelegate GetDelegateForFunctionPointer(IntPtr ptr);
[System.Security.SecurityCritical]
public static TDelegate GetDelegateForFunctionPointer<TDelegate> (IntPtr ptr);
public static TDelegate GetDelegateForFunctionPointer<TDelegate> (IntPtr ptr);
[<System.Security.SecurityCritical>]
static member GetDelegateForFunctionPointer : nativeint -> 'Delegate
static member GetDelegateForFunctionPointer : nativeint -> 'Delegate
Public Shared Function GetDelegateForFunctionPointer(Of TDelegate) (ptr As IntPtr) As TDelegate

Tür Parametreleri

TDelegate

Döndürülecek temsilcinin türü.

Parametreler

ptr
IntPtr

nativeint

Dönüştürülecek yönetilmeyen işlev işaretçisi.

Döndürülenler

TDelegate

Belirtilen temsilci türünün örneği.

Öznitelikler

Özel durumlar

Genel TDelegate parametre bir temsilci değil veya açık bir genel tür.

ptr parametresidirnull.

Açıklamalar

Temsilcileri her iki yönde de sıralamak için ve GetFunctionPointerForDelegate<TDelegate>(TDelegate) yöntemlerini kullanabilirsinizGetDelegateForFunctionPointer<TDelegate>(IntPtr).

ptr , varsayılan platform çağırma kuralını kullanarak yönetilmeyen yöntemi çağıran bir temsilciye dönüştürülür. çağrısı kuralını, öğesini temsilciye uygulayarak UnmanagedFunctionPointerAttribute ayarlayabilirsiniz.

GetDelegateForFunctionPointer<TDelegate>(IntPtr) yöntemi aşağıdaki kısıtlamalara sahiptir:

  • Genel öğeler birlikte çalışma senaryolarında desteklenmez.

  • Bu yöntemi yalnızca saf yönetilmeyen işlev işaretçileri için kullanabilirsiniz.

  • C++ aracılığıyla alınan işlev işaretçileriyle bu yöntemi kullanamazsınız.

Şunlara uygulanır