Udostępnij za pośrednictwem


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ść i ulClassSize 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

Zobacz też