Atrybuty pola
Atrybuty pól to atrybuty, które można zastosować do pól tablicy, struktury, unii lub tablicy znaków:
- [ignorować], [size_is]
- [max_is]
- [length_is]
- [first_is]
- [last_is]
- [switch_is]
- [ciąg]
- atrybuty wskaźnika
Na przykład atrybuty pól są używane w połączeniu z deklaracjami tablicy w celu określenia rozmiaru tablicy lub części tablicy zawierającej prawidłowe dane. Odbywa się to przez skojarzenie innego parametru, pola struktury lub wyrażenia stałego z tablicą.
Atrybut [ignorować] wyznacza pola wskaźnika, które mają być ignorowane podczas procesu marshalingu. Takie zignorowane pole jest ustawione na wartość null po stronie odbiorcy.
MidL zapewnia zgodne, różnei otwarte tablice. Tablica jest nazywana zgodna, jeśli jej granice są określane w czasie wykonywania. Atrybut [size_is] wyznacza górną granicę rozmiaru alokacji tablicy i [max_is] atrybut wyznacza górną granicę dla wartości prawidłowego indeksu tablicy. Aby uzyskać więcej informacji, zobacz [tablice].
Tablica jest nazywana różnicą, jeśli jej granice są określane w czasie kompilacji, ale zakres przesyłanych elementów jest określany w czasie wykonywania. Otwarta tablica (nazywana również zgodną różną tablicą) to tablica, której górna granica i zakres przesyłanych elementów są określane w czasie wykonywania. Aby określić zakres przesyłanych elementów tablicy, deklaracja tablicy musi zawierać [length_is], [first_is]lub [last_is] atrybut.
Atrybut [length_is] określa liczbę elementów tablicy, które mają być przesyłane, a [first_is] atrybut wyznacza indeks pierwszego elementu tablicy, który ma zostać przesłany. Atrybut [last_is] wyznacza indeks ostatniego elementu tablicy, który ma zostać przesłany.
Atrybut pola [switch_is] wyznacza dyskryminujący związek. Gdy unia jest parametrem procedury, dyskryminator unii musi być innym parametrem tej samej procedury. Gdy unia jest dziedziną struktury, dyskryminator musi być innym polem struktury na tym samym poziomie co pole unii. Dyskryminator musi być wartością logiczną , char, intlub typu wyliczeniowego lub typu, który jest rozpoznawany jako jeden z tych typów. Aby uzyskać więcej informacji, zobacz i [switch_is].
Atrybut [ciąg] określa, że jednowymiarowy znak lub tablica bajtów albo wskaźnik do znaku zerowego lub strumienia bajtów jest traktowany jako ciąg. Atrybut ciągu ma zastosowanie tylko do tablic jednowymiarowych i wskaźników. Typ elementu jest ograniczony do znaków, bajtów, wchar_tlub nazwanego typu rozpoznawanego jako jeden z tych typów.
Aby uzyskać informacje o kontekście, w którym są wyświetlane atrybuty pola, zobacz tablice MIDL, struktury MIDLi unii MIDL.