DLL 함수가 포함된 클래스 만들기
자주 사용되는 DLL 함수를 관리되는 클래스에 래핑하면 플랫폼 기능을 효율적으로 캡슐화할 수 있습니다. 모든 DLL 함수를 래핑할 필요는 없지만, DLL 함수 정의 작업은 번거롭고 오류도 쉽게 발생할 수 있기 때문에 클래스 래퍼를 사용하면 여러 가지 면에서 유용합니다. Visual Basic 또는 C#에서 프로그래밍하는 경우에는 DLL 함수를 클래스 또는 Visual Basic 모듈 안에 선언해야 합니다.
클래스 내에서 호출하려는 각 DLL 함수에 대한 정적 메서드를 정의해야 합니다. 이 정의에는 문자 집합 또는 메서드 인수를 전달할 때의 호출 규칙과 같은 추가 정보가 포함될 수 있는데, 이 정보를 생략하면 기본 설정이 사용됩니다. 선언 옵션 목록 및 해당 옵션의 기본 설정에 대한 자세한 내용은 관리 코드에서 프로토타입 만들기를 참조하십시오.
함수를 래핑하면 다른 정적 함수에 대해 메서드를 호출할 때와 마찬가지로, 래핑된 함수에 대해 메서드를 호출할 수 있습니다. 플랫폼 호출은 내보낸 내부 함수를 자동으로 처리합니다.
플랫폼 호출에 사용할 관리되는 클래스를 디자인할 때에는 클래스와 DLL 함수의 관계를 고려해야 합니다. 예를 들어, 다음을 수행할 수 있습니다.
기존 클래스 안에 DLL 함수를 선언합니다.
함수를 서로 분리하고 찾기 쉽도록 각 DLL 함수에 대해 클래스를 만듭니다.
서로 관련된 DLL 함수 집합에 대해 하나의 클래스를 만들어 논리 그룹을 형성하고 오버헤드를 줄입니다.
클래스와 해당 메서드의 이름은 원하는 대로 지정할 수 있습니다. 플랫폼 호출에서 사용되는 .NET 기반 선언의 생성 방법을 보여 주는 예제는 플랫폼 호출을 사용하여 데이터 마샬링을 참조하십시오.