다음을 통해 공유


/Os 스위치

/Os 스위치는 클라이언트와 서버 간에 전달된 스텁 코드를 마샬링하는 혼합 모드 메서드를 지정합니다.

midl /Os

스위치 옵션

이 스위치에는 매개 변수가 없습니다.

설명

코드를 마샬링하는 방법을 결정하기 전에 고려해야 할 중요한 문제가 있습니다. 이러한 문제는 크기 및 성능과 관련이 있습니다. MIDL 컴파일러는 코드를 마샬링하는 두 가지 메서드인 혼합 모드(/Os)와 완전히 해석된(/Oi)를 제공합니다. 완전히 해석된 메서드는 데이터를 완전히 오프라인으로 마샬링합니다. 이렇게 하면 스텁 코드의 크기가 상당히 줄어들지만 성능도 저하됩니다.

이전 버전과의 호환성을 제외한 모든 용도로 MIDL 기본 모드 /Oicf /strong을 사용합니다. 이 모드는 MIDL 컴파일러의 보안 표준 모드입니다. 다른 모든 모드는 보안에 미치는 영향을 신중하게 고려한 후에만 사용해야 하며, 향후 확장은 기본 모드에 대해서만 구현될 것임을 깨달아야 합니다. 혼합 모드에서 컴파일러는 생성된 스텁의 일부 매개 변수를 인라인으로 마샬링합니다. 이로 인해 스텁 크기가 커지지만 성능이 향상 될 수도 있습니다.

MIDL은 /Oicf 모드에서만 다차원 배열 및 다차원 크기의 포인터를 완전히 지원합니다. /Os/Oi 모드에서 컴파일러는 고정 크기 배열과 같은 간단한 사례를 지원합니다. /Os 또는 /Oi 모드에서 다차원 배열을 사용하면 매개 변수가 올바르게 마샬링되지 않을 수 있습니다. 인터페이스가 다차원 배열 또는 다차원 크기의 포인터인 매개 변수를 정의할 때 /Oicf 명령줄 스위치를 사용하는 것이 좋습니다.

데이터가 마샬링되는 방식에서 그라데이션 수준을 추가로 정의하기 위해 이 버전의 RPC는 [최적화] 특성을 제공합니다. 이 특성은 마샬링 모드를 선택하기 위해 ACF 인터페이스 특성 또는 작업 특성으로 사용됩니다.

예제

midl /Os filename.idl

추가 정보

일반 MIDL 명령줄 구문

/Oi

최적화

/no_format_opt