IMetaDataEmit::SetClassLayout, metod
Slutför layouten för fält för en klass som har definierats av ett tidigare anrop till DefineTypeDef-metoden.
Syntax
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
Parametrar
td
[in] En mdTypeDef
token som anger vilken klass som ska anges.
dwPackSize
[in] Förpackningsstorlek: 1, 2, 4, 8 eller 16 byte. Förpackningsstorleken är antalet byte mellan angränsande fält.
rFieldOffsets
[in] En matris med COR_FIELD_OFFSET strukturer, som var och en anger ett fält i klassen och fältets förskjutning i klassen. Avsluta matrisen med mdTokenNil
.
ulClassSize
[in] Storleken i byte för klassen.
Kommentarer
Klassen definieras först genom att anropa metoden IMetaDataEmit::D efineTypeDef och ange en av tre layouter för fälten i klassen: automatisk, sekventiell eller explicit. Normalt använder du automatisk layout och låter körningen välja det bästa sättet att utforma fälten.
Men du kanske vill att fälten ska anges enligt den ordning som ohanterad kod använder. I det här fallet väljer du antingen sekventiell eller explicit layout och anropar SetClassLayout
för att slutföra layouten för fälten:
Sekventiell layout: Ange förpackningsstorlek. Ett fält justeras efter antingen dess naturliga storlek eller förpackningsstorlek, beroende på vilket som resulterar i fältets mindre förskjutning. Ange
rFieldOffsets
ochulClassSize
till noll.Explicit layout: Ange antingen förskjutningen för varje fält eller ange klassstorleken och förpackningsstorleken.
Krav
Plattformar: Se Systemkrav.
Huvudet: Cor.h
Bibliotek: Används som en resurs i MSCorEE.dll
.NET Framework versioner: Tillgänglig sedan 1.0