C# 프로그래밍 기초 실습 전자책

C# / .NET 알고리즘과 퀴즈
본 알고리즘 퀴즈 문제는 C#/.NET 개발자를 위한 알고리즘 인터뷰 혹은 C# 프로그래밍을 통한
문제 해결 알고리즘을 연구해 보는데 도움이 되고자 작성되었습니다.


퀴즈 질문


예상답변/설명

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#의 메서드를 호출하듯이 함수를 호출하면 된다. 위의 예는 간단한 예이지만, 여러 마샬링 옵션, 호출 방식등을 지정할 수 있다.