대리자 및 관리되지 않는 함수 포인터 래핑
.NET Framework 2.0 이상 버전에서는 다음 메서드를 사용하여 관리 코드와 비관리 코드 사이의 함수 포인터를 마샬링하는 기능을 제공합니다.
관리되지 않는 함수 포인터를 대리자로 마샬링하려면 Marshal.GetDelegateForFunctionPointer 메서드를 사용합니다. 이 메서드는 System.IntPtr 클래스를 사용하여 관리되지 않는 함수 포인터를 나타냅니다.
대리자를 비관리 코드에서 호출할 수 있는 함수 포인터로 마샬링하려면 Marshal.GetFunctionPointerForDelegate 메서드를 사용합니다. 이 메서드를 사용하면 수동으로 가비지 수집기에서 대리자를 수집하지 못하도록 해야 합니다. 가비지 수집기는 비관리 코드에 대한 참조를 추적하지 않습니다.
매개 변수 마샬러는 .NET Framework 2.0 이상 버전에서도 함수 포인터를 대리자로 마샬링할 수 있습니다.