ACF(애플리케이션 구성 파일)

한 구성 요소에 영향을 주지만 다른 구성 요소와는 아무 상관이 없는 분산 애플리케이션의 측면이 있을 수 있습니다. 예를 들어 개체는 크고 복잡한 데이터 구조를 포함하고 이 데이터 구조의 내용을 다른 개체에 전달할 수 있습니다. 이 데이터 구조의 정확한 레이아웃은 수신 애플리케이션에 의미가 없을 수 있습니다. 또한 구조에는 MIDL 컴파일러가 인식하지 못하고 마샬링 및 경계 해제 코드를 생성할 수 없는 데이터 형식이 포함될 수 있습니다.

클라이언트 애플리케이션은 동일한 인터페이스를 공유하지만 다른 플랫폼에서 실행할 수 있습니다. 각각 고유한 마샬링 루틴 집합이 필요할 수 있습니다. 마지막으로 개별 클라이언트에 항상 동일한 함수 집합이 필요하지 않을 수 있습니다. 특정 클라이언트 애플리케이션에서 구현되지 않는 함수에 대한 스텁 코드를 생성하는 것은 비효율적입니다.

ACF(애플리케이션 구성 파일)에서 인터페이스의 이러한 로컬 측면을 정의하면 클라이언트 인터페이스 간의 차이점을 네트워크 표현과 분리하여 서버가 일관된 형식으로 데이터를 보내고 받을 수 있도록 하고 스텁 코드를 보다 간결하고 효율적으로 만들 수 있습니다.

ACF 인터페이스 정의의 구조 및 구문은 IDL 정의와 동일합니다.

[ interface-attribute-list] interface interface-name {. . .}

기본적으로 ACF 인터페이스 이름은 IDL 정의의 이름과 일치해야 합니다. 그러나 MIDL 컴파일러 옵션/ acf 를 사용하여 ACF 파일 이름을 명시적으로 지정하는 경우 인터페이스 이름이 일치하지 않아도 됩니다. 이 기능을 사용하면 여러 인터페이스가 단일 ACF 사양을 공유할 수 있습니다.