Auf Englisch lesen

Freigeben über


Marshal.GetFunctionPointerForDelegate Methode

Definition

Überlädt

GetFunctionPointerForDelegate(Delegate)
Veraltet.

Konvertiert einen Delegaten in einen Funktionszeiger, der aus nicht verwaltetem Code aufgerufen werden kann.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Konvertiert einen Delegaten eines angegebenen Typs in einen Funktionszeiger, der aus nicht verwaltetem Code aufgerufen werden kann.

GetFunctionPointerForDelegate(Delegate)

Quelle:
Marshal.cs
Quelle:
Marshal.cs
Quelle:
Marshal.cs

Achtung

GetFunctionPointerForDelegate(Delegate) may be unavailable in future releases. Instead, use GetFunctionPointerForDelegate<T>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296522

Konvertiert einen Delegaten in einen Funktionszeiger, der aus nicht verwaltetem Code aufgerufen werden kann.

C#
[System.Obsolete("GetFunctionPointerForDelegate(Delegate) may be unavailable in future releases. Instead, use GetFunctionPointerForDelegate<T>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296522")]
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate(Delegate d);
C#
public static IntPtr GetFunctionPointerForDelegate(Delegate d);
C#
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate(Delegate d);

Parameter

d
Delegate

Der Delegat, der an nicht verwalteten Code übergeben werden soll.

Gibt zurück

IntPtr

Ein Wert, der an nicht verwalteten Code übergeben werden kann, der mit diesem Wert wiederum den zugrunde liegenden verwalteten Delegaten aufrufen kann.

Attribute

Ausnahmen

Der d-Parameter ist eine generische Typdefinition.

Der d-Parameter ist null.

Hinweise

Der Delegat d wird in einen Funktionszeiger konvertiert, der mithilfe der Standardplattformaufrufkonvention an nicht verwalteten Code übergeben werden kann. Sie können die aufrufende Konvention festlegen, indem Sie die UnmanagedFunctionPointerAttribute auf den Delegat anwenden.

Sie müssen manuell hindern, dass der Delegat vom Garbage Collector aus verwaltetem Code erfasst wird. Der Garbage Collector verfolgt keine Verweise auf nicht verwalteten Code nach.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen (Veraltet)
.NET Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 (Core 1.0)
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 2.0, 2.1 (1.2, 1.3, 1.4, 1.5, 1.6)
UWP (10.0)

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Quelle:
Marshal.cs
Quelle:
Marshal.cs
Quelle:
Marshal.cs

Konvertiert einen Delegaten eines angegebenen Typs in einen Funktionszeiger, der aus nicht verwaltetem Code aufgerufen werden kann.

C#
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate<TDelegate>(TDelegate d);
C#
public static IntPtr GetFunctionPointerForDelegate<TDelegate>(TDelegate d);

Typparameter

TDelegate

Der Typ des zu konvertierenden Delegaten.

Parameter

d
TDelegate

Der Delegat, der an nicht verwalteten Code übergeben werden soll.

Gibt zurück

IntPtr

Ein Wert, der an nicht verwalteten Code übergeben werden kann, der mit diesem Wert wiederum den zugrunde liegenden verwalteten Delegaten aufrufen kann.

Attribute

Ausnahmen

Der d-Parameter ist eine generische Typdefinition.

Der d-Parameter ist null.

Hinweise

Der Delegat d wird in einen Funktionszeiger konvertiert, der mithilfe der Standardmäßigen Plattformaufrufkonvention an nicht verwalteten Code übergeben werden kann. Sie können die aufrufende Konvention festlegen, indem Sie die UnmanagedFunctionPointerAttribute auf den Delegat anwenden.

Sie müssen manuell hindern, dass der Delegat vom Garbage Collector aus verwaltetem Code erfasst wird. Der Garbage Collector verfolgt keine Verweise auf nicht verwalteten Code nach.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0