/Os スイッチ
/Os スイッチは、クライアントとサーバーの間で渡されたスタブ コードをマーシャリングする混合モード メソッドを指定します。
midl /Os
このスイッチにはパラメーターがありません。
コードをマーシャリングする方法を決定する前に、考慮すべき重要な問題があります。 これらの問題は、サイズとパフォーマンスに関するものです。 MIDL コンパイラには、混合モード (/Os) と完全解釈 (/Oi) の 2 つのコードをマーシャリングするためのメソッドが用意されています。 完全に解釈されたメソッドは、データを完全にオフラインでマーシャリングします。 これによりスタブ コードのサイズが大幅に小さくなりますが、パフォーマンスも低下します。
MIDL の既定モード /Oicf /robust は、下位互換性以外のすべての目的で使用します。 このモードは、MIDL コンパイラのセキュリティで保護された標準モードです。その他のモードは、セキュリティへの影響を慎重に検討した後にのみ使用する必要があります。将来の拡張機能は既定のモードにのみ実装されることに気付きます。 混合モードでは、コンパイラは生成されたスタブの一部のパラメーターをインラインでマーシャリングします。 これによりスタブ サイズが大きくなりますが、パフォーマンスが向上する可能性もあります。
MIDL では、 /Oicf モードでのみ多次元配列と多次元サイズのポインターが完全にサポートされます。 /Os モードと /Oi モードでは、コンパイラは固定サイズ配列などの単純なケースをサポートします。 /Os モードまたは /Oi モードで多次元配列を使用すると、パラメーターが正しくマーシャリングされない可能性があります。 インターフェイスで多次元配列または多次元サイズのポインターであるパラメーターを定義する場合は、 /Oicf コマンド ライン スイッチを使用することをお勧めします。
データのマーシャリング方法のグラデーションのレベルをさらに定義するために、このバージョンの RPC には [optimize] 属性が用意されています。 この属性は、マーシャリング モードを選択するために ACF インターフェイス属性または操作属性として使用されます。
midl /Os filename.idl