Partilhar via


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 e ulClassSize 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

Ver também