/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