Schalter "/error"
Der Schalter /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 /robust-Schalters wird empfohlen.
midl /error { allocation | stub_data | ref | bounds_check | none | all }
-
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 ausnahmen auf serverseitiger Seite abfängt und an den Client weitergibt.
-
Ref
-
Generiert Code, der eine Überprüfung zur Laufzeit 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, falls eine gefunden wird.
-
bounds_check
-
Überprüft die Größe konformer und unterschiedlicher Arrays anhand der Spezifikation der Übertragungslänge.
-
nichts
-
Führt keine Fehlerüberprüfung durch.
-
Alle
-
Führt alle Fehlerüberprüfungen durch. Ab MIDL Version 5.0 ist dies ein Standardcompilerschalter.
Die Option /error wählt die Anzahl der Fehlerprüfungen aus, die von den generierten Stubdateien ausgeführt werden. Ab MIDL Version 5.0 ist die Standardeinstellung /error all.
Die (standardmäßig in allen Versionen von MIDL) überprüften Enumerationsfehler sind Abschneidefehler, die beim Konvertieren zwischen langen Enumerationstypen (32-Bit-Ganzzahlen) und kurzen Enumerationstypen (der Netzwerkdatendarstellung von Enume) und der Anzahl der Bezeichner in einer Enumeration über 32.767 verursacht werden.
Die Fehlerüberprüfung für den Speicherzugriff (standardmäßig auch in allen Versionen von MIDL) gilt für Zeiger, die das Ende des Puffers im Marshallcode überschreiten, und für konforme Arrays, deren Größe kleiner als 0 ist. Verwenden Sie das Flag /error bounds_check , um nach anderen ungültigen Arraygrenzen zu suchen.
Wenn Sie die /error-Zuordnung 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 den Server während der Entmardung abstürzen, was effektiv eine stabilere Methode zur Behandlung des Entmarstungsvorgangs bietet.
Ab Windows 2000 führt die zugrunde liegende Laufzeit-NDR-Marshalling-Engine die meisten dieser Überprüfungen aus. Wenn Sie also einen der vollständig interpretierten Modi (/Oi, /Oif) der Stubgenerierung verwenden, wirkt sich die Auswahl verschiedener Fehlerüberprüfungsoptionen nicht deutlich auf die Leistung aus.
midl /error allocation filename.idl
midl /error none filename.idl