/error switch

Der Schalter "/error " bestimmt die Typen der Fehlerüberprüfung, dass die generierten Stubs zur Laufzeit ausgeführt werden.

Hinweis

Dieses Feature ist veraltet und wird nicht mehr unterstützt. Die Verwendung des /robusten Schalters 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 Out-of-Memory-Fehler angibt.

stub_data

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

Ref

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

bounds_check

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

nichts

Führt keine Fehlerüberprüfung aus.

Alle

Führt alle Fehlerüberprüfungen aus. Dies ist ein Standard-Compiler-Switch, der mit MIDL Version 5.0 wirksam ist.

Bemerkungen

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

Die Aufzählungsfehler, die überprüft werden (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 von Bezeichnern in einer Aufzählung über 32.767 verursacht werden.

Die Speicherzugriffsfehlerüberprüfung (auch standardmäßig in allen Versionen von MIDL) gilt für Zeiger, die das Ende des Puffers im Marshalingcode 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 Unmarshalings abstürzen, wodurch eine robustere Methode zur Behandlung des Unmarshaling-Vorgangs bereitgestellt wird.

Wirksam mit Windows 2000 führt das zugrunde liegende Laufzeit-NDR-Marshalingmodul die meisten dieser Prüfungen aus. Dies bedeutet, dass wenn Sie einen der vollständig interpretierten Modi (/Oi, /Oif) der Stubgenerierung verwenden, die Auswahl verschiedener Fehlerüberprüfungsoptionen keine markierte Auswirkung auf die Leistung hat.

Beispiele

midl /error allocation filename.idl

midl /error none filename.idl

Siehe auch

Allgemeine MIDL-Befehlszeilensyntax

/robust