Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Kończy układ pól dla klasy, która została zdefiniowana przez wcześniejsze wywołanie metody DefineTypeDef.
Syntax
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
Parameters
td [in] Token mdTypeDef określający klasę, która ma zostać ułożona.
dwPackSize [in] Rozmiar pakowania: 1, 2, 4, 8 lub 16 bajtów. Rozmiar pakowania to liczba bajtów między sąsiednimi polami.
rFieldOffsets [in] Tablica struktur COR_FIELD_OFFSET , z których każda określa pole klasy i przesunięcie pola w klasie. Zakończ tablicę za pomocą polecenia mdTokenNil.
ulClassSize [in] Rozmiar klasy w bajtach.
Remarks
Klasa jest początkowo definiowana przez wywołanie metody IMetaDataEmit::D efineTypeDef i określenie jednego z trzech układów dla pól klasy: automatycznych, sekwencyjnych lub jawnych. Zwykle należy użyć automatycznego układu i pozwolić środowisku uruchomieniowemu wybrać najlepszy sposób na rozmieszczenie pól.
Możesz jednak chcieć określić pola zgodnie z układem używanym przez niezarządzany kod. W takim przypadku wybierz układ sekwencyjny lub jawny i wywołaj metodę SetClassLayout , aby ukończyć układ pól:
Układ sekwencyjny: określ rozmiar pakowania. Pole jest wyrównane zgodnie z jego rozmiarem naturalnym lub rozmiarem pakowania, w zależności od tego, co powoduje mniejsze przesunięcie pola. Ustaw
rFieldOffsetswartość iulClassSizena zero.Jawny układ: określ przesunięcie każdego pola lub określ rozmiar klasy i rozmiar pakowania.
Requirements
Platformy: Zobacz Obsługiwane systemy operacyjne platformy .NET.
Header: Cor.h
Library: CorGuids.lib