관리되지 않는 DLL 함수 사용

플랫폼 호출은 DLL(동적 연결 라이브러리)에 구현된 관리되지 않는 함수(예: Win32 API의 함수)를 관리 코드에서 호출할 수 있게 하는 서비스입니다. 플랫폼 호출 서비스는 내보낸 함수를 찾아 호출한 후 필요에 따라 해당 인수(정수, 문자열, 배열, 구조 등)를 상호 운용 경계에서 마샬링합니다. 이 서비스에 대한 자세한 내용은 플랫폼 호출을 참조하십시오.

이 단원에서는 관리되지 않는 DLL 함수의 사용과 관련된 몇 가지 작업에 대해 설명하며 이들 작업 이외에도 일반적인 고려 사항 및 추가 정보와 예제로의 링크도 제공합니다.

내보낸 DLL 함수를 사용하려면

  1. DLL의 함수를 식별합니다.

    적어도 함수의 이름과 해당 함수가 들어 있는 DLL의 이름을 지정해야 합니다.

  2. DLL 함수가 포함된 클래스를 만듭니다.

    기존 클래스를 사용하거나, 관리되지 않는 각 함수에 대한 개별 클래스를 만들거나, 관리되지 않는 관련 함수 집합을 포함하는 클래스를 만들 수 있습니다.

  3. 관리 코드에서 프로토타입을 만듭니다.

    [Visual Basic] Declare 문에 FunctionLib 키워드를 사용합니다. 드물지만, 경우에 따라서는 DllImportAttributeShared Function 키워드를 사용할 수도 있습니다. 이러한 예제는 이 단원의 뒷부분에 설명됩니다.

    [C#] DllImportAttribute를 사용하여 DLL 및 함수를 식별합니다. staticextern 한정자로 메서드를 표시합니다.

    [C++] DllImportAttribute를 사용하여 DLL 및 함수를 식별합니다. **extern "C"**로 래퍼 메서드 또는 함수를 표시합니다.

  4. DLL 함수를 호출합니다.

    다른 관리되는 메서드를 호출하는 것과 마찬가지로 관리되는 클래스에 대해 메서드를 호출합니다. 구조체 전달콜백 함수 구현은 특별한 경우입니다.

플랫폼 호출에서 사용되는 .NET 기반 선언의 생성 방법을 보여 주는 예제는 플랫폼 호출을 사용하여 데이터 마샬링을 참조하십시오.

참고 항목

개념

플랫폼 호출

플랫폼 호출 예제

Interop 마샬링

기타 리소스

비관리 코드와의 상호 운용