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
aulClassSize
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