Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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