Marshal.GetDelegateForFunctionPointer Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.
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
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.