Marshal.GetDelegateForFunctionPointer Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| GetDelegateForFunctionPointer(IntPtr, Type) |
Veraltet.
Konvertiert einen nicht verwalteten Funktionszeiger in einen Delegaten. |
| GetDelegateForFunctionPointer<TDelegate>(IntPtr) |
Konvertiert einen nicht verwalteten Funktionszeiger in einen Delegaten eines angegebenen Typs. |
GetDelegateForFunctionPointer(IntPtr, Type)
Achtung
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
Konvertiert einen nicht verwalteten Funktionszeiger in einen Delegaten.
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
Parameter
- ptr
-
IntPtr
nativeint
Der nicht verwaltete Funktionszeiger, der konvertiert werden soll.
- t
- Type
Der Typ der zurückzugebenden Stellvertretung.
Gibt zurück
Eine Delegatinstanz, die in den entsprechenden Delegattyp umwandeln kann.
- Attribute
Ausnahmen
Der t Parameter ist kein Delegat oder generisch.
Hinweise
Sie können die und GetFunctionPointerForDelegate die GetDelegateForFunctionPointer Methoden verwenden, um Delegaten in beide Richtungen zu marshallen. Mit GetDelegateForFunctionPointer, ptr wird als ein System.IntPtr. Eine System.IntPtr kann für einen verwalteten Delegat durch Aufrufen GetFunctionPointerForDelegate und Übergeben als Parameter abgerufen werden. Sie kann dann innerhalb der nicht verwalteten Methode aufgerufen werden. Beachten Sie, dass der Parameter marshaler auch Zeiger mit Funktionen auf Stellvertretungen marshallen kann.
ptr wird in einen Delegaten konvertiert, der die nicht verwaltete Methode mithilfe der Standardkonvention für Plattformaufrufe aufruft. Sie können die Anrufkonvention festlegen, indem Sie die UnmanagedFunctionPointerAttribute Stellvertretung anwenden.
Die GetDelegateForFunctionPointer Methode hat die folgenden Einschränkungen:
- Generika werden in Interoperabilitätsszenarien nicht unterstützt.
- Sie können diese Methode nur für reine nicht verwaltete Funktionszeiger verwenden.
- Sie können diese Methode nicht mit Funktionszeigern verwenden, die über C++ abgerufen wurden.
Gilt für:
GetDelegateForFunctionPointer<TDelegate>(IntPtr)
Konvertiert einen nicht verwalteten Funktionszeiger in einen Delegaten eines angegebenen Typs.
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
Typparameter
- TDelegate
Der Typ der zurückzugebenden Stellvertretung.
Parameter
- ptr
-
IntPtr
nativeint
Der nicht verwaltete Funktionszeiger, der konvertiert werden soll.
Gibt zurück
Eine Instanz des angegebenen Delegattyps.
- Attribute
Ausnahmen
Der TDelegate generische Parameter ist kein Delegat oder ein offener generischer Typ.
Der ptr Parameter ist null.
Hinweise
Sie können die und GetFunctionPointerForDelegate<TDelegate>(TDelegate) die GetDelegateForFunctionPointer<TDelegate>(IntPtr) Methoden verwenden, um Delegaten in beide Richtungen zu marshallen.
ptr wird in einen Delegaten konvertiert, der die nicht verwaltete Methode mithilfe der Standardkonvention für Plattformaufrufe aufruft. Sie können die Anrufkonvention festlegen, indem Sie die UnmanagedFunctionPointerAttribute Stellvertretung anwenden.
Die GetDelegateForFunctionPointer<TDelegate>(IntPtr) Methode hat die folgenden Einschränkungen:
- Generika werden in Interoperabilitätsszenarien nicht unterstützt.
- Sie können diese Methode nur für reine nicht verwaltete Funktionszeiger verwenden.
- Sie können diese Methode nicht mit Funktionszeigern verwenden, die über C++ abgerufen wurden.