Freigeben über


/error switch

Die Option "/error " bestimmt die Typen der Fehlerüberprüfung, die die generierten Stubs zur Laufzeit ausführen.

Hinweis

Dieses Feature ist veraltet und wird nicht mehr unterstützt. Die Verwendung des Schalters "/robust " wird empfohlen.

 

midl /error { allocation | stub_data | ref | bounds_check | none | all }

Optionen wechseln

Zuteilung

Überprüft, ob midl_user_allocate einen NULL-Wert zurückgibt, der einen Fehler außerhalb des Arbeitsspeichers angibt.

stub_data

Generiert einen Stub, der unmarshaling-Ausnahmen auf der Serverseite abfangen und an den Client weitergibt.

Ref

Generiert Code, der zur Laufzeit eine Überprüfung ausführt, um sicherzustellen, dass keine NULL-Verweiszeiger an die Client-Stubs übergeben werden, und löst eine RPC_X_NULL_REF_POINTER Ausnahme aus, wenn sie gefunden wird.

bounds_check

Überprüft die Größe von konformen und unterschiedlichen Arrays anhand der Spezifikation der Übertragungslänge.

nichts

Führt keine Fehlerüberprüfung durch.

Alle

Führt alle Fehlerüberprüfungen aus. Ab MIDL Version 5.0 ist dies ein Standardcompilerschalter.

Bemerkungen

Die Option "/error " wählt die Anzahl der Fehlerüberprüfungen aus, die von den generierten Stubdateien ausgeführt werden. Ab MIDL, Version 5.0, ist die Standardeinstellung "/error all".

Die überprüften Enumerationsfehler (standardmäßig in allen Versionen von MIDL) sind Abkürzungsfehler, die beim Konvertieren zwischen langen Enumerationstypen (32-Bit-Ganzzahlen) und kurzen Enumerationstypen (der Netzwerkdatendarstellung der Enumeration) und der Anzahl der Bezeichner in einer Aufzählung über 32.767 verursacht werden.

Die Speicherzugriffsfehlerüberprüfung (auch in allen MidL-Versionen) ist für Zeiger vorgesehen, die das Ende des Puffers im Marshaling-Code und für konforme Arrays überschreiten, deren Größe kleiner als Null ist. Verwenden Sie das Flag "/error" bounds_check , um nach anderen ungültigen Arraygrenzen zu suchen.

Wenn Sie /error allocation angeben, enthalten die Stubs Code, der eine Ausnahme auslöst, wenn midl_user_allocate "0" zurückgibt.

Die Option "/error" stub_data verhindert, dass Clientdaten während des Entmarshalings den Server abstürzen, wodurch eine stabilere Methode für die Behandlung des Unmarshaling-Vorgangs bereitgestellt wird.

Effektiv mit Windows 2000 führt das zugrunde liegende NDR-Marshallingmodul die meisten dieser Prüfungen aus. Dies bedeutet: Wenn Sie einen der vollständig interpretierten Modi (/Oi, /Oif) der Stubgenerierung verwenden, wirkt sich die Auswahl verschiedener Fehlerüberprüfungsoptionen nicht auf die Leistung aus.

Beispiele

midl /error allocation filename.idl

midl /error none filename.idl

Siehe auch

Allgemeine MIDL-Befehlszeilensyntax

/Robuste