Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Завершает макет полей для класса, определенного перед вызовом метода DefineTypeDef.
Syntax
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
Parameters
td [in] Маркер, указывающий mdTypeDef класс, который нужно выложить.
dwPackSize [in] Размер упаковки: 1, 2, 4, 8 или 16 байт. Размер упаковки — это количество байтов между соседними полями.
rFieldOffsets [in] Массив структур COR_FIELD_OFFSET , каждый из которых задает поле класса и смещение поля в классе. Завершите массив с mdTokenNilпомощью .
ulClassSize [in] Размер класса в байтах.
Remarks
Класс изначально определяется путем вызова метода IMetaDataEmit::D efineTypeDef и указания одного из трех макетов для полей класса: автоматического, последовательного или явного. Как правило, вы будете использовать автоматический макет и позволите среде выполнения выбрать оптимальный способ размещения полей.
Однако может потребоваться, чтобы поля, изложенные в соответствии с расположением, который использует неуправляемый код. В этом случае выберите последовательный или явный макет и вызов SetClassLayout , чтобы завершить макет полей:
Последовательный макет: укажите размер упаковки. Поле выравнивается в соответствии с его естественным размером или размером упаковки, в зависимости от того, что приводит к меньшему смещение поля. Задайте
rFieldOffsetsиulClassSizeравное нулю.Явный макет: укажите смещение каждого поля или укажите размер класса и размер упаковки.
Requirements
Платформ: См. сведения о поддерживаемых операционных системах .NET.
Header: Cor.h
Library: CorGuids.lib