관리되지 않는 DLL 함수 사용
업데이트: 2007년 11월
플랫폼 호출은 DLL(동적 연결 라이브러리)에 구현된 관리되지 않는 함수(예: Win32 API의 함수)를 관리 코드에서 호출할 수 있게 하는 서비스입니다. 플랫폼 호출 서비스는 내보낸 함수를 찾아 호출한 후 필요에 따라 해당 인수(정수, 문자열, 배열, 구조 등)를 상호 운용 경계에서 마샬링합니다. 이 서비스에 대한 자세한 내용은 플랫폼 호출을 참조하십시오.
이 단원에서는 관리되지 않는 DLL 함수의 사용과 관련된 몇 가지 작업에 대해 설명하며 이들 작업 이외에도 일반적인 고려 사항 및 추가 정보와 예제로의 링크도 제공합니다.
내보낸 DLL 함수를 사용하려면
DLL의 함수를 식별합니다.
적어도 함수의 이름과 해당 함수가 들어 있는 DLL의 이름을 지정해야 합니다.
-
기존 클래스를 사용하거나, 관리되지 않는 각 함수에 대한 개별 클래스를 만들거나, 관리되지 않는 관련 함수 집합을 포함하는 클래스를 만들 수 있습니다.
-
[Visual Basic] Declare 문에 Function 및 Lib 키워드를 사용합니다. 드물지만, 경우에 따라서는 DllImportAttribute와 Shared Function 키워드를 사용할 수도 있습니다. 이러한 예제는 이 단원의 뒷부분에 설명됩니다.
[C#] DllImportAttribute를 사용하여 DLL 및 함수를 식별합니다. static 및 extern 한정자로 메서드를 표시합니다.
[C++] DllImportAttribute를 사용하여 DLL 및 함수를 식별합니다. **extern "C"**로 래퍼 메서드 또는 함수를 표시합니다.
DLL 함수를 호출합니다.
다른 관리되는 메서드를 호출하는 것과 마찬가지로 관리되는 클래스에 대해 메서드를 호출합니다. 구조체 전달 및 콜백 함수 구현은 특별한 경우입니다.
플랫폼 호출에서 사용되는 .NET 기반 선언의 생성 방법을 보여 주는 예제는 플랫폼 호출을 사용하여 데이터 마샬링을 참조하십시오.