Megosztás:


IMetaDataEmit::SetClassLayout Method

A DefineTypeDef metódus előzetes hívása által definiált osztály mezőinek elrendezését végzi el.

Syntax

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

Parameters

td [in] A mdTypeDef lefektetendő osztályt meghatározó jogkivonat.

dwPackSize [in] A csomagolás mérete: 1, 2, 4, 8 vagy 16 bájt. A csomagolás mérete a szomszédos mezők közötti bájtok száma.

rFieldOffsets [in] COR_FIELD_OFFSET struktúrák tömbje, amelyek mindegyike az osztály egy mezőjét és a mező eltolását határozza meg az osztályon belül. Állítsa le a tömböt a következővel mdTokenNil: .

ulClassSize [in] Az osztály mérete bájtban.

Remarks

Az osztály kezdetben az IMetaDataEmit::D efineTypeDef metódus meghívásával és az osztály mezőinek egyikének megadásával határozható meg: automatikus, szekvenciális vagy explicit. Általában automatikus elrendezést használna, és hagyja, hogy a futtatókörnyezet válassza ki a legjobb módot a mezők elrendezésére.

Előfordulhat azonban, hogy a mezőket a nem felügyelt kód által használt elrendezés szerint szeretné elhelyezni. Ebben az esetben válasszon szekvenciális vagy explicit elrendezést, és hívja meg SetClassLayout a mezők elrendezésének befejezéséhez:

  • Szekvenciális elrendezés: Adja meg a csomagolás méretét. A mezők a természetes méretnek vagy a csomagolási méretnek megfelelően vannak igazítva, attól függően, hogy melyik a mező kisebb eltolása. Állítsa be rFieldOffsets és ulClassSize állítsa nullára.

  • Explicit elrendezés: Adja meg az egyes mezők eltolását, vagy adja meg az osztály méretét és a csomagolás méretét.

Requirements

Platformok: Lásd: .NET által támogatott operációs rendszerek.

Header: Cor.h

Library: CorGuids.lib

See also