Método IMetaDataEmit::SetClassLayout
Conclui o layout de campos para uma classe que foi definida por uma chamada anterior ao 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 token mdTypeDef
que especifica a classe a ser definida.
dwPackSize
[in] O tamanho do pacote: 1, 2, 4, 8 ou 16 bytes. O tamanho do pacote é o número de bytes entre campos adjacentes.
rFieldOffsets
[in] Uma matriz de estruturas COR_FIELD_OFFSET, cada uma especificando um campo da classe e o deslocamento do campo dentro da classe. Terminar a matriz com um mdTokenNil
.
ulClassSize
[in] O tamanho da classe em bytes.
Comentários
A classe é inicialmente definida chamando o método IMetaDataEmit::DefineTypeDef e especificando um dos três layouts para os campos da classe: automático, sequencial ou explícito. Normalmente, você usaria o layout automático e permitiria que o runtime escolhesse a melhor maneira de definir os campos.
No entanto, talvez você queira que os campos sejam definidos de acordo com o arranjo que o código não gerenciado utiliza. Nesse caso, escolha o layout sequencial ou explícito e chame SetClassLayout
para concluir o layout dos campos:
Layout sequencial: especifique o tamanho do pacote. Um campo é alinhado de acordo com seu tamanho natural ou o tamanho do pacote, o que resultar no menor deslocamento do campo. Defina
rFieldOffsets
eulClassSize
como zero.Layout explícito: especifique o deslocamento de cada campo ou especifique o tamanho da classe e o tamanho do pacote.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: Cor.h
Biblioteca: usada como um recurso no MsCorEE.dll
Versões do .NET Framework: Disponíveis desde a versão 1.0