создание оболочки для делегатов и указателей на неуправляемые функции

Среда .NET Framework версии 2.0 или более поздней предоставляет возможность маршалинга указателей на функции между управляемым и неуправляемым кодом, используя следующие методы:

  • Метод Marshal.GetDelegateForFunctionPointer используется для маршалинга указателя на неуправляемую функцию в делегат. Для представления указателя на неуправляемую функцию в этом методе используется класс System.IntPtr.

  • Метод Marshal.GetFunctionPointerForDelegate используется для маршалинга делегата в указатель на функцию, вызываемый из неуправляемого кода. При использовании этого метода разработчик должен вручную предотвратить уничтожение делегата сборщиком мусора. Сборщик мусора не отслеживает ссылки на неуправляемый код.

Обратите внимание, что упаковщик параметров может также маршалировать указатели на функции делегатам в среде .NET Framework 2.0 и последующих версиях.

См. также

Ссылки

GetDelegateForFunctionPointer

GetFunctionPointerForDelegate