다음을 통해 공유


대리자를 함수 포인터로 마샬링

업데이트: 2007년 11월

다음 표에서는 관리되는 대리자를 비관리 코드의 함수 포인터로 마샬링하는 방법의 예를 보여 줍니다.

관리되는 대리자(C#)

관리되지 않는 함수 포인터(C++)

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);

참고 항목

기타 리소스

.NET Compact Framework의 마샬링 지원