Calcular referencias de delegados como punteros de función
Artículo
Actualización: noviembre 2007
La tabla siguiente muestra los ejemplos de cómo se pueden calcular referencias a un delegado administrado a un puntero de función en código no administrado.
Delegado administrado (C#)
Puntero de función no administrado (C++)
public delegate int EnumDelegate(
IntPtr hwnd, int LParam);
[DllImport("coredll.dll")]
static extern int EnumWindows(
EnumDelegate d,
Int lParm);
public delegate int EnumDelegate(
IntPtr hwnd, int lParam);
[DllImport("coredll.dll")]
static extern int EnumWindows(
[MarshalAs(UnmanagedType.FunctionPtr0]
EnumDelegate d,
Int lParam);