Marshal.GetDelegateForFunctionPointer Metódus

Definíció

Túlterhelések

Name Description
GetDelegateForFunctionPointer(IntPtr, Type)
Elavult.

Nem felügyelt függvénymutatót delegálttá alakít át.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

A nem felügyelt függvénymutatót egy megadott típusú delegálttá alakítja.

GetDelegateForFunctionPointer(IntPtr, Type)

Forrás:
Marshal.cs
Forrás:
Marshal.cs
Forrás:
Marshal.cs
Forrás:
Marshal.cs
Forrás:
Marshal.cs

Figyelemfelhívás

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

Nem felügyelt függvénymutatót delegálttá alakít át.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the delegate might not be available. Use the GetDelegateForFunctionPointer<TDelegate> overload instead.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the delegate might not be available. Use the GetDelegateForFunctionPointer<TDelegate> overload instead.")>]
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

Paraméterek

ptr
IntPtr

nativeint

A konvertálni kívánt nem felügyelt függvénymutató.

t
Type

A visszaadandó meghatalmazott típusa.

Válaszok

Egy delegált példány, amely a megfelelő delegálási típusra vethető.

Attribútumok

Kivételek

A t paraméter nem delegált vagy általános.

A ptr paraméter a következő null: .

-vagy-

A t paraméter a következő null: .

Megjegyzések

Mindkét irányban használhatja a meghatalmazottakat és GetDelegateForFunctionPointer a GetFunctionPointerForDelegate metódusokat. A With (A GetDelegateForFunctionPointer) ptr fájl importálása System.IntPtr. A System.IntPtr felügyelt delegáltak meghívásával és paraméterként való átadásával GetFunctionPointerForDelegate szerezhető be, majd meghívható a nem felügyelt metóduson belülről. Vegye figyelembe, hogy a marshaler paraméter a meghatalmazottaknak is használhatja a marshal függvénymutatókat.

ptr az alapértelmezett platformhívási konvencióval a nem felügyelt metódust meghívó meghatalmazotttá alakul át. A hívási konvenciót úgy állíthatja be, hogy alkalmazza a UnmanagedFunctionPointerAttribute meghatalmazottra.

A GetDelegateForFunctionPointer metódus a következő korlátozásokkal rendelkezik:

  • Az általános generikusok nem támogatottak az interop forgatókönyvekben.
  • Ezt a módszert csak tiszta, nem felügyelt függvénymutatókhoz használhatja.
  • Ezt a metódust nem használhatja a C++-on keresztül kapott függvénymutatókkal.

A következőre érvényes:

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Forrás:
Marshal.cs
Forrás:
Marshal.cs
Forrás:
Marshal.cs
Forrás:
Marshal.cs
Forrás:
Marshal.cs

A nem felügyelt függvénymutatót egy megadott típusú delegálttá alakítja.

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ípusparaméterek

TDelegate

A visszaadni kívánt meghatalmazott típusa.

Paraméterek

ptr
IntPtr

nativeint

A konvertálni kívánt nem felügyelt függvénymutató.

Válaszok

TDelegate

A megadott meghatalmazotttípus egy példánya.

Attribútumok

Kivételek

Az TDelegate általános paraméter nem delegált, vagy nyílt általános típus.

A ptr paraméter a következő null: .

Megjegyzések

Mindkét irányban használhatja a meghatalmazottakat és GetDelegateForFunctionPointer<TDelegate>(IntPtr) a GetFunctionPointerForDelegate<TDelegate>(TDelegate) metódusokat.

ptr az alapértelmezett platformhívási konvencióval a nem felügyelt metódust meghívó meghatalmazotttá alakul át. A hívási konvenciót úgy állíthatja be, hogy alkalmazza a UnmanagedFunctionPointerAttribute meghatalmazottra.

A GetDelegateForFunctionPointer<TDelegate>(IntPtr) metódus a következő korlátozásokkal rendelkezik:

  • Az általános generikusok nem támogatottak az interop forgatókönyvekben.
  • Ezt a módszert csak tiszta, nem felügyelt függvénymutatókhoz használhatja.
  • Ezt a metódust nem használhatja a C++-on keresztül kapott függvénymutatókkal.

A következőre érvényes: