IMetaDataEmit::SetClassLayout — Metoda
Kończy układ pól dla klasy, która została zdefiniowana przez wcześniejsze wywołanie metody DefineTypeDef.
Składnia
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
Parametry
td
[w] Token mdTypeDef
określający klasę do ułożonej.
dwPackSize
[w] Rozmiar pakowania: 1, 2, 4, 8 lub 16 bajtów. Rozmiar pakowania to liczba bajtów między sąsiednimi polami.
rFieldOffsets
[w] 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
[w] Rozmiar klasy w bajtach.
Uwagi
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: automatyczne, sekwencyjne lub jawne. Zwykle należy użyć automatycznego układu i pozwolić środowisku uruchomieniowemu wybrać najlepszy sposób na rozmieszczenie pól.
Jednak możesz chcieć, aby pola zostały określone zgodnie z układem używanym przez niezarządzany kod. W takim przypadku wybierz sekwencyjny lub jawny układ i wywołaj wywołanie SetClassLayout
, aby ukończyć układ pól:
Układ sekwencyjny: określ rozmiar pakowania. Pole jest wyrównane zgodnie z jego naturalnym rozmiarem lub rozmiarem pakowania, w zależności od tego, co powoduje mniejsze przesunięcie pola. Ustaw
rFieldOffsets
wartość iulClassSize
na zero.Jawny układ: określ przesunięcie każdego pola lub określ rozmiar klasy i rozmiar pakowania.
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: Cor.h
Biblioteki: Używane jako zasób w MSCorEE.dll
wersje .NET Framework: dostępne od wersji 1.0