퀴즈 질문 |
|
|
예상답변/설명 |
C++로 작성된 Unmanaged DLL안에 있는 함수를 C#과 같은 Managed Code에서 사용할 수 있다. 이를 P/Invoke (Platform Invoke)라 부른다.
DllImport를 통해 외부 DLL명과 Import할 함수 원형을 extern static으로 아래와 같이 지정한다.
// 외부 함수 정의
[DllImport("user32.dll")]
static extern bool EnableWindow(IntPtr hwnd, bool bEnable);
private void button1_Click(object sender, EventArgs e)
{
// C# 에서 사용
EnableWindow(button2.Handle, false);
}
C#에서 사용하기 위해서는 위의 예제처럼 마치 C#의 메서드를 호출하듯이 함수를 호출하면 된다. 위의 예는 간단한 예이지만, 여러 마샬링 옵션, 호출 방식등을 지정할 수 있다.
|