Sdílet prostřednictvím


IMetaDataEmit::SetClassLayout – metoda

Dokončí rozložení polí pro třídu, která byla definována předchozím voláním DefineTypeDef Metoda.

Syntaxe

HRESULT SetClassLayout (  
    [in]  mdTypeDef           td,
    [in]  DWORD               dwPackSize,
    [in]  COR_FIELD_OFFSET    rFieldOffsets[],
    [in]  ULONG               ulClassSize
);  

Parametry

td
[v] Token mdTypeDef , který určuje třídu, která má být rozložena.

dwPackSize
[v] Velikost balení: 1, 2, 4, 8 nebo 16 bajtů. Velikost balení je počet bajtů mezi sousedními poli.

rFieldOffsets
[v] Pole COR_FIELD_OFFSET struktur, z nichž každá určuje pole třídy a posun pole v rámci třídy. Ukončete pole pomocí mdTokenNil.

ulClassSize
[v] Velikost třídy v bajtech.

Poznámky

Třída je zpočátku definována voláním metody IMetaDataEmit::D efineTypeDef a určením jednoho ze tří rozložení pro pole třídy: automatické, sekvenční nebo explicitní. Za normálních okolností byste použili automatické rozložení a modul runtime zvolil nejlepší způsob rozložení polí.

Můžete ale chtít pole uspořádat podle uspořádání, které používá nespravovaný kód. V takovém případě zvolte sekvenční nebo explicitní rozložení a voláním SetClassLayout dokončete rozložení polí:

  • Sekvenční rozložení: Zadejte velikost balení. Pole je zarovnané buď podle své přirozené velikosti, nebo velikosti balení, podle toho, co vede k menšímu posunu pole. Nastavte rFieldOffsets a ulClassSize na nulu.

  • Explicitní rozložení: Buď určete posun jednotlivých polí, nebo zadejte velikost třídy a velikost balení.

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: Cor.h

Knihovny: Používá se jako prostředek v MSCorEE.dll

Verze rozhraní .NET Framework: K dispozici od verze 1.0

Viz také