Método IMetaDataEmit::SetClassLayout
Conclui o esquema de campos para uma classe que foi definida por uma chamada anterior para o Método DefineTypeDef.
Sintaxe
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
Parâmetros
td
[in] Um mdTypeDef
token que especifica a classe a ser definida.
dwPackSize
[in] O tamanho da embalagem: 1, 2, 4, 8 ou 16 bytes. O tamanho da embalagem é o número de bytes entre campos adjacentes.
rFieldOffsets
[in] Uma matriz de estruturas COR_FIELD_OFFSET , cada uma das quais especifica um campo da classe e o deslocamento do campo na classe . Termine a matriz com mdTokenNil
.
ulClassSize
[in] O tamanho, em bytes, da classe .
Observações
A classe é inicialmente definida ao chamar o método IMetaDataEmit::D efineTypeDef e ao especificar um de três esquemas para os campos da classe: automático, sequencial ou explícito. Normalmente, utilizaria o esquema automático e deixaria que o runtime escolhesse a melhor forma de esquematização dos campos.
No entanto, poderá querer que os campos sejam definidos de acordo com a disposição que o código não gerido utiliza. Neste caso, escolha um esquema sequencial ou explícito e chame SetClassLayout
para concluir o esquema dos campos:
Esquema sequencial: especifique o tamanho da embalagem. Um campo é alinhado de acordo com o tamanho natural ou o tamanho da embalagem, o que resultar no deslocamento menor do campo. Defina
rFieldOffsets
eulClassSize
como zero.Esquema explícito: especifique o deslocamento de cada campo ou especifique o tamanho da classe e o tamanho da embalagem.
Requisitos
Plataformas: Veja Requisitos de Sistema.
Cabeçalho: Cor.h
Biblioteca: Utilizado como recurso no MSCorEE.dll
.NET Framework Versões: Disponível desde 1.0