다음을 통해 공유


대리자 및 관리되지 않는 함수 포인터 래핑

.NET Framework 2.0 이상 버전에서는 다음 메서드를 사용하여 관리 코드와 비관리 코드 사이의 함수 포인터를 마샬링하는 기능을 제공합니다.

  • 관리되지 않는 함수 포인터를 대리자로 마샬링하려면 Marshal.GetDelegateForFunctionPointer 메서드를 사용합니다. 이 메서드는 System.IntPtr 클래스를 사용하여 관리되지 않는 함수 포인터를 나타냅니다.

  • 대리자를 비관리 코드에서 호출할 수 있는 함수 포인터로 마샬링하려면 Marshal.GetFunctionPointerForDelegate 메서드를 사용합니다. 이 메서드를 사용하면 수동으로 가비지 수집기에서 대리자를 수집하지 못하도록 해야 합니다. 가비지 수집기는 비관리 코드에 대한 참조를 추적하지 않습니다.

매개 변수 마샬러는 .NET Framework 2.0 이상 버전에서도 함수 포인터를 대리자로 마샬링할 수 있습니다.

참고 항목

참조

GetDelegateForFunctionPointer

GetFunctionPointerForDelegate