Evaluar y enviar comentarios
MSDN
MSDN Library
 GetDelegateForFunctionPointer (Méto...
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
Marshal.GetDelegateForFunctionPointer (Método)

Nota: este método es nuevo en la versión 2.0 de .NET Framework.

Convierte un puntero a función no administrado en un delegado.

Espacio de nombres: System.Runtime.InteropServices
Ensamblado: mscorlib (en mscorlib.dll)

Visual Basic (Declaración)
Public Shared Function GetDelegateForFunctionPointer ( _
    ptr As IntPtr, _
    t As Type _
) As Delegate
Visual Basic (Uso)
Dim ptr As IntPtr
Dim t As Type
Dim returnValue As Delegate

returnValue = Marshal.GetDelegateForFunctionPointer(ptr, t)
C#
public static Delegate GetDelegateForFunctionPointer (
    IntPtr ptr,
    Type t
)
C++
public:
static Delegate^ GetDelegateForFunctionPointer (
    IntPtr ptr, 
    Type^ t
)
J#
public static Delegate GetDelegateForFunctionPointer (
    IntPtr ptr, 
    Type t
)
JScript
public static function GetDelegateForFunctionPointer (
    ptr : IntPtr, 
    t : Type
) : Delegate

Parámetros

ptr

Tipo System.IntPtr que es el puntero a función no administrado que se va a convertir.

t

Tipo del delegado que se va a devolver.

Valor devuelto

Instancia de delegado que se puede convertir al tipo de delegado adecuado.
Tipo de excepciónCondición

ArgumentException

El parámetro t no es un delegado.

ArgumentNullException

El parámetro ptr es referencia de objeto null (Nothing en Visual Basic).

O bien

El parámetro t es referencia de objeto null (Nothing en Visual Basic).

En versiones 1.0 y 1.1 de .NET Framework, era posible pasar un delegado que representaba un método administrado a código no administrado como un puntero a función, lo que permitía que el código no administrado llamara al método administrado mediante el puntero a función. También era posible que el código no administrado pasara ese puntero a función de nuevo al código administrado y el puntero se resolvía correctamente en el método administrado subyacente.

Con este nuevo método, GetDelegateForFunctionPointer y, un segundo nuevo método, GetFunctionPointerForDelegate, ahora puede calcular referencias de delegados en ambas direcciones. Con el método GetDelegateForFunctionPointer, ptr se importa como IntPtr; se puede obtener una estructura IntPtr para un delegado administrado llamando al método GetFunctionPointerForDelegate y, a continuación, se puede pasar como parámetro; después ya puede llamarse desde el método no administrado. Observe que el contador de referencias de parámetro también puede calcular las referencias de los punteros a función a los delegados en la versión 2.0.

NotaNota

No puede pasar un puntero a función no válido al método GetDelegateForFunctionPointer. Además, sólo puede utilizar este método para meros punteros a función no administrados. No puede utilizar este método con punteros a función obtenidos a través de C++ o de GetFunctionPointer. No puede utilizar este método para crear un delegado a partir de un puntero a función a otro delegado administrado.

Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker