Прочитать на английском

Поделиться через


Marshal.GetFunctionPointerForDelegate Метод

Определение

Перегрузки

GetFunctionPointerForDelegate(Delegate)
Устаревшие..

Преобразует делегат в указатель на функцию, вызываемый из неуправляемого кода.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Преобразует делегат указанного типа в указатель на функцию, вызываемый из неуправляемого кода.

GetFunctionPointerForDelegate(Delegate)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Внимание!

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.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);
public static IntPtr GetFunctionPointerForDelegate(Delegate d);
[System.Security.SecurityCritical]
public static IntPtr GetFunctionPointerForDelegate(Delegate d);

Параметры

d
Delegate

Делегат, передаваемый в неуправляемый код.

Возвращаемое значение

IntPtr

Значение, которое можно передать в неуправляемый код, который, в свою очередь, может использовать его для вызова базового управляемого делегата.

Атрибуты

Исключения

Параметр d является определением универсального типа.

Параметр d имеет значение null.

Комментарии

Делегат d преобразуется в указатель функции, который можно передать в неуправляемый код с помощью соглашения о вызовах платформы по умолчанию. Соглашение о вызовах можно задать, применив UnmanagedFunctionPointerAttribute к делегату.

Сборщик мусора должен вручную не собирать делегат из управляемого кода. Сборщик мусора не отслеживает ссылки на неуправляемый код.

Применяется к

.NET 9 и другие версии
Продукт Версии (Устарело)
.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)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Преобразует делегат указанного типа в указатель на функцию, вызываемый из неуправляемого кода.

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

Параметры типа

TDelegate

Тип преобразуемого делегата.

Параметры

d
TDelegate

Делегат, передаваемый в неуправляемый код.

Возвращаемое значение

IntPtr

Значение, которое можно передать в неуправляемый код, который, в свою очередь, может использовать его для вызова базового управляемого делегата.

Атрибуты

Исключения

Параметр d является определением универсального типа.

Параметр d имеет значение null.

Комментарии

Делегат d преобразуется в указатель функции, который можно передать в неуправляемый код с помощью соглашения о вызовах платформы по умолчанию. Соглашение о вызовах можно задать, применив UnmanagedFunctionPointerAttribute к делегату.

Сборщик мусора должен вручную не собирать делегат из управляемого кода. Сборщик мусора не отслеживает ссылки на неуправляемый код.

Применяется к

.NET 9 и другие версии
Продукт Версии
.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