Compartilhar via


Método de IMetaDataEmit::SetClassLayout

Conclui o layout dos campos de uma classe que tenha sido definida por uma chamada anterior a Método de IMetaDataEmit::DefineTypeDef.

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 para ser apresentado-out.

  • dwPackSize
    [in] O tamanho de remessa: 1, 2, 4, 8 ou 16 bytes. O tamanho de remessa é o número de bytes entre campos adjacentes.

  • rFieldOffsets
    [in] Uma matriz de COR_FIELD_OFFSET estruturas, cada uma das quais Especifica um campo da classe e o campo de deslocamento dentro da classe. Encerrar a matriz com mdTokenNil.

  • ulClassSize
    [in] O tamanho em bytes, da classe.

Comentários

Inicialmente, a classe é definida, chamando o IMetaDataEmit::DefineTypeDef método e especificando um dos três layouts para os campos da classe: automático, explícito ou seqüencial. Normalmente, você seria usar layout automático e deixar que o runtime escolha a melhor maneira de dispor os campos.

No entanto, convém campos dispostos de acordo com para a organização que não gerenciados usos de código. Nesse caso, escolha layout seqüencial ou explícito e chamada SetClassLayout para concluir o layout dos campos:

  • Layout seqüencial: Especifique o tamanho de remessa. Um campo de alinhamento de acordo com o seu tamanho natural ou o tamanho de remessa, que resulta no deslocamento menor do campo. Definir rFieldOffsets e ulClassSize a zero.

  • Layout explícito: Especifique o deslocamento de cada campo ou especificar o tamanho de classe e o tamanho de remessa.

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: Cor.h

Biblioteca: Usado como um recurso em mscoree

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Consulte também

Referência

Interface de IMetaDataEmit

Interface de IMetaDataEmit2