카테고리:

1 분 소요

DLLImport

DllImport는 P/Invoke(플랫폼호출) 방법 중 하나로 C#에서 .NET 외의 코드나 라이브러리, 특히 C나 C++로 작성된 코드를 호출할 때 사용한다. 이를 사용하여 C# 코드에서 외부 DLL 함수를 호출한다.

소스 코드

아래는 DllImport를 사용하는 기본적인 예제로 kernel32.dll에 있는 MessageBox 함수를 호출한다.

using System;
using System.Runtime.InteropServices;

class Program {
    // kernel32.dll에 있는 MessageBox 함수 선언
    [DllImport("kernel32.dll", SetLastError = true)]
    public static extern int MessageBox(IntPtr hWnd, string text, string caption, uint type);

    static void Main() {
        // MessageBox 함수 호출
        MessageBox(IntPtr.Zero, "Hello, DllImport!", "Greetings", 0);
    }
}

위의 코드에서 DllImport 함수를 통해 kernel32.dll 내부의 MessageBox 함수를 C#에서 마치 일반적인 C# 함수처럼 호출한다. 이 처럼 DllImport는 외부 DLL이나 네이티브 코드를 사용하는 경우에 유용하지만, 네이티브 코드와의 상호 작용 시에 메모리 관리와 타입 일치에 주의해야 한다.

참고

https://learn.microsoft.com/ko-kr/dotnet/standard/native-interop/pinvoke
https://learn.microsoft.com/ko-kr/dotnet/api/system.runtime.interopservices.dllimportattribute?view=net-8.0

태그: dll, DllImport, InteropServices, IntPtr, P/Invoke, pinvoke, 외부함수호출

업데이트: