Marshallen von Delegaten als Funktionszeiger
In diesem Artikel
Aktualisiert: November 2007
Die folgende Tabelle enthält Beispiele dazu, wie ein verwalteter Delegat in einen Funktionszeiger in nicht verwaltetem Code gemarshallt werden kann.
public delegate int EnumDelegate(
IntPtr hwnd, int LParam);
[DllImport("coredll.dll")]
static extern int EnumWindows(
EnumDelegate d,
Int lParm);
typedef BOOL (* WNDENUMPROC)
(HWND, LPARAM);
BOOL EnumWindows(
WNDENUMPROC lpEnumFunc,
LPARAM lParam);
public delegate int EnumDelegate(
IntPtr hwnd, int lParam);
[DllImport("coredll.dll")]
static extern int EnumWindows(
[MarshalAs(UnmanagedType.FunctionPtr0]
EnumDelegate d,
Int lParam);
typedef BOOL (* WNDENUMPROC)
(HWND, LPARAM);
BOOL EnumWindows(
WNDENUMPROC lpENumFunc,
LPARAM lParam);
Siehe auch
Weitere Ressourcen
Unterstützung von Marshalling in .NET Compact Framework