Feldattribute
Feldattribute sind die Attribute, die auf Felder eines Arrays, einer Struktur, einer Vereinigung oder eines Zeichenarrays angewendet werden können:
- [], [size_is]
- [max_is]
- [length_is]
- [first_is]
- [last_is]
- [switch_is]
- [Zeichenfolge]
- Zeigerattribute
Feldattribute werden beispielsweise in Verbindung mit Arraydeklarationen verwendet, um entweder die Größe des Arrays oder den Teil des Arrays anzugeben, der gültige Daten enthält. Dies erfolgt durch Zuordnen eines anderen Parameters, eines Strukturfelds oder eines konstanten Ausdrucks zum Array.
Die [ignorieren] Attribut bezeichnet Zeigerfelder, die während des Marshallingprozesses ignoriert werden sollen. Ein solches ignoriertes Feld wird auf NULL- auf der Empfängerseite festgelegt.
MIDL bietet konformen, unterschiedlichenund geöffneten Arrays. Ein Array wird als konform bezeichnet, wenn seine Grenzen zur Laufzeit bestimmt werden. Das attribut [size_is] legt die obere Grenze für die Zuordnungsgröße des Arrays fest, und das attribut [max_is ] bezeichnet die obere Grenze für den Wert eines gültigen Arrayindexes. Weitere Informationen finden Sie unter [Arrays].
Ein Array wird unterschiedlich bezeichnet, wenn seine Grenzen zur Kompilierungszeit bestimmt werden, aber der Bereich der übertragenen Elemente wird zur Laufzeit bestimmt. Ein offenes Array (auch als konformes unterschiedliches Array bezeichnet) ist ein Array, dessen obere Grenze und Bereich der übertragenen Elemente zur Laufzeit bestimmt werden. Um den Bereich der übertragenen Elemente eines Arrays zu bestimmen, muss die Arraydeklaration ein [length_is], [first_is]oder [last_is] Attribut enthalten.
Das attribut [length_is] bestimmt die Anzahl der zu übertragenden Arrayelemente, und das attribut [first_is] bestimmt den Index des ersten zu übertragenden Arrayelements. Das [last_is] Attribut bestimmt den Index des letzten zu übertragenden Arrayelements.
Das [switch_is] Feldattribute bezeichnet einen Union-Diskriminator. Wenn die Union ein Prozedurparameter ist, muss der Union-Diskriminator ein weiterer Parameter derselben Prozedur sein. Wenn die Vereinigung ein Feld einer Struktur ist, muss der Diskriminator ein anderes Feld der Struktur auf derselben Ebene wie das Unionsfeld sein. Der Diskriminator muss ein boolescher, Zeichen, intoder Enumeration Typ oder ein Typ sein, der zu einem dieser Typen aufgelöst wird. Weitere Informationen finden Sie unter nicht gekapselten Gewerkschaften und [switch_is].
Die [Zeichenfolge] Feldattribute bestimmt, dass ein eindimensionales Zeichen oder Bytearray oder ein Zeiger auf ein 0-gekündigtes Zeichen oder byte-Datenstrom als Zeichenfolge behandelt werden soll. Das Zeichenfolgen-Attribut gilt nur für eindimensionale Arrays und Zeiger. Der Elementtyp ist auf Zeichen, Byte-, wchar_toder auf einen benannten Typ beschränkt, der zu einem dieser Typen aufgelöst wird.
Informationen zum Kontext, in dem Feldattribute angezeigt werden, finden Sie unter MIDL Arrays, MIDL Structuresund MIDL Unions.