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.
Mit dem [range] -Attribut können Sie einen Bereich zulässiger Werte für Argumente oder Felder angeben, deren Werte zur Laufzeit festgelegt werden. Bei Verwendung mit einem Rohrtyp gibt das Attribut den zulässigen Bereich für die Anzahl der Elemente in den Rohrblöcken an.
[range(low-val,high-val)] type-specifier declarator
Parameter
-
niedriger Wert
-
Der niedrigste zulässige Wert, den der Parameter oder das Feld enthalten kann.
-
Hochwert
-
Der höchste zulässige Wert, den der Parameter oder das Feld enthalten kann.
-
Typbezeichner
-
Ein anderer integraler Typ als Hyper oder __int64, ein Typbezeichner für einen integralen Typ, einen Enumerationstyp oder einen Rohrtypnamen.
-
Deklarator
-
Ein C-Standard-Deklarator, z. B. ein Bezeichner.
Bemerkungen
Verwenden Sie das [range] -Attribut, um die Bedeutung vertraulicher Parameter oder Felder zu ändern, z. B. die für Größe oder Länge verwendeten Parameter mit konformen oder unterschiedlichen Arrays; oder immer, wenn Sie einen Parameter oder Feldwert anhand eines Bereichs gültiger Werte überprüfen möchten. Das Attribut gilt sowohl für Parameter auf oberster Ebene als auch für Parameter und Felder auf niedrigerer Ebene. Das Hinzufügen des [range] -Attributs zu einem Typ ändert das Drahtformat nicht, wirkt sich daher nicht auf die Abwärtskompatibilität aus.
Das [range] -Attribut kann auch für konforme Daten wie Puffer oder Arrays mit einem Konformitätsattribute verwendet werden. Der Effekt besteht darin, alle Konformitätsgrößen für die konformen Daten auf den angegebenen Bereich zu beschränken. Wenn es sich bei den konformen Daten um ein mehrdimensionales Array handelt, ist jede Arraydimension auf den angegebenen Bereich beschränkt.
Die Verwendung von [Range] für konforme Daten erfordert, dass das Kompilierungsziel oder höher sein muss --target NT60 .
Beachten Sie, dass Sie beim Kompilieren der IDL-Datei die Option "/robust " verwenden müssen, um den Stubcode zu generieren, der diese Prüfungen durchführt. Ohne den Switch /robust ignoriert der MIDL-Compiler dieses Attribut.
Beispiele
HRESULT Method1(
[in, range(0,100)] ULONG m,
[in, range(0,100)] ULONG n,
[size_is(m,n)] ULONG **pplong);
void InPipe(
[in, range(0, MAX_CHUNK) LONG_PIPE pipe_date);
Siehe auch