Marshal.GetDelegateForFunctionPointer Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Overloads
| Name | Description |
|---|---|
| GetDelegateForFunctionPointer(IntPtr, Type) |
Verouderd.
Converteert een niet-beheerde functieaanwijzer naar een gemachtigde. |
| GetDelegateForFunctionPointer<TDelegate>(IntPtr) |
Converteert een niet-beheerde functieaanwijzer naar een gemachtigde van een opgegeven type. |
GetDelegateForFunctionPointer(IntPtr, Type)
Let op
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
Converteert een niet-beheerde functieaanwijzer naar een gemachtigde.
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
Parameters
- ptr
-
IntPtr
nativeint
De niet-beheerde functiepointer die moet worden geconverteerd.
- t
- Type
Het type gedelegeerde dat moet worden geretourneerd.
Retouren
Een gemachtigde instantie die kan worden gecast naar het juiste type gemachtigde.
- Kenmerken
Uitzonderingen
De t parameter is geen gemachtigde of algemeen.
Opmerkingen
U kunt de GetDelegateForFunctionPointer en GetFunctionPointerForDelegate methoden gebruiken om marshal delegates in beide richtingen te gebruiken. Met GetDelegateForFunctionPointer, ptr wordt geïmporteerd als een System.IntPtr. Een System.IntPtr kan worden verkregen voor een beheerde gemachtigde door aan te roepen GetFunctionPointerForDelegate en door te voeren als een parameter. Deze kan vervolgens worden aangeroepen vanuit de niet-beheerde methode. Houd er rekening mee dat de parameter marshaler ook marshal functie wijst naar gemachtigden.
ptr wordt geconverteerd naar een gemachtigde die de niet-beheerde methode aanroept met behulp van de standaardconventie voor platformoproepen. U kunt de oproepconventie instellen door de UnmanagedFunctionPointerAttribute gemachtigde toe te passen.
De GetDelegateForFunctionPointer methode heeft de volgende beperkingen:
- Generics worden niet ondersteund in interop-scenario's.
- U kunt deze methode alleen gebruiken voor pure onbeheerde functiepointers.
- U kunt deze methode niet gebruiken met functie-aanwijzers die zijn verkregen via C++.
Van toepassing op
GetDelegateForFunctionPointer<TDelegate>(IntPtr)
Converteert een niet-beheerde functieaanwijzer naar een gemachtigde van een opgegeven type.
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
Type parameters
- TDelegate
Het type gemachtigde dat moet worden geretourneerd.
Parameters
- ptr
-
IntPtr
nativeint
De onbeheerde functie aanwijzer die moet worden geconverteerd.
Retouren
Een exemplaar van het opgegeven gedelegeerdentype.
- Kenmerken
Uitzonderingen
De TDelegate algemene parameter is geen gemachtigde of is een open algemeen type.
De ptr parameter is null.
Opmerkingen
U kunt de GetDelegateForFunctionPointer<TDelegate>(IntPtr) en GetFunctionPointerForDelegate<TDelegate>(TDelegate) methoden gebruiken om marshal delegates in beide richtingen te gebruiken.
ptr wordt geconverteerd naar een gemachtigde die de niet-beheerde methode aanroept met behulp van de standaardconventie voor platformoproepen. U kunt de oproepconventie instellen door de UnmanagedFunctionPointerAttribute gemachtigde toe te passen.
De GetDelegateForFunctionPointer<TDelegate>(IntPtr) methode heeft de volgende beperkingen:
- Generics worden niet ondersteund in interop-scenario's.
- U kunt deze methode alleen gebruiken voor pure onbeheerde functiepointers.
- U kunt deze methode niet gebruiken met functie-aanwijzers die zijn verkregen via C++.