Schalter "/robust"

Der Schalter /robust weist den MIDL-Compiler an, zusätzliche Fehlerüberprüfungsinformationen zu generieren, die die NDR-Engine verwendet, um Integritätsprüfungen zur Laufzeit durchzuführen.

midl /robust {/Oicf | /Oif }

Switch-Optionen

/Oicf

/Oif

Diese Schalter sind in ihrer Funktionalität identisch. Sie geben die codelose Proxymethode für das Marshalling an und verwenden schnelle Formatzeichenfolgen, um die Leistung zu verbessern. Siehe / Oi.

Bemerkungen

Die Verwendung des Schalters /robust generiert zusätzliche Informationen, die es der NDR-Engine (Network Data Representation, Netzwerkdatendarstellung) ermöglichen, Laufzeitfehlerüberprüfungen für korrelierte Argumente in dynamischen Arrays, Unions und in Out-Schnittstellenzeige in DCOM-Anwendungen durchzuführen. Der Schalter /robust ist nur unter Windows 2000 und neueren Versionen von Windows.

Ein korreliertes Argument ist ein Argument, das eines der Attribute verwendet, mit denen die Größe eines Datenobjekts zur Laufzeit bestimmt werden kann: size _ ist, length _ ist, first _ is, last _ is, max _ is, switch _ is, and iid _ is. In Übereinstimmung mit der OSF-DCE-Spezifikation für die Wire-Darstellung wird dieses korrelierte Argument an zwei verschiedenen Stellen angezeigt. Stellen Sie sich beispielsweise vor, dass eine typische Verwendung des -Attributs _ "size" ist:

HRESULT Func1([in] long Size, 
              [in, size_is(Size)]BAR_TYPE *pBarType);

In diesem Beispiel übergibt der Client einen long-Wert, der die Größe eines Blocks von BAR-TYPEs (in Bezug auf die Anzahl der BAR TYPES-Elemente) angibt, und einen Zeiger auf den tatsächlichen Block von _ _ _ BAR-TYPEs. Das Size-Argument korreliert mit dem pBarType-Argument. In Übereinstimmung mit der OSF-DCE-Spezifikation wird das Size-Argument zweimal im Netzwerk dargestellt– zuerst als sich selbst und dann mit dem Array von BAR TYPE-Elementen, die das _ pBarType-Argument darstellen. Jedes Argument wird unabhängig voneinander gemäß seiner eigenen Wire-Darstellung entmarshaliert. Normalerweise haben das Size-Argument und seine Kopie, die zur Darstellung eines Teils des anderen Arguments verwendet wird, dieselben Werte. Wenn das Size-Argument beschädigt wird (z. B. wenn der Block von BAR TYPES größer als der zugeordnete ist), reagiert die Serveranwendung möglicherweise nicht mehr, da sie den Wert des Arguments Size verwendet, um eingehende Daten zu _ messen.

Der Schalter /robust ist erforderlich, um eine gültige Bereichsüberprüfung mit dem Bereichsattribut zu implementieren.

Beispiele

midl /robust /Oicf filename.idl

Weitere Informationen

Allgemeine MIDL-Befehlszeilensyntax

/Oi

Bereich