Marshal.GetDelegateForFunctionPointer Methode

Definitie

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.

De ptr parameter is null.

– of –

De t parameter is null.

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

TDelegate

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++.

Van toepassing op