IMetaDataEmit::SetClassLayout, méthode
Termine la disposition des champs d’une classe qui a été définie par un appel antérieur à la méthode DefineTypeDef.
Syntaxe
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
Paramètres
td
[in] Jeton mdTypeDef
qui spécifie la classe à disposer.
dwPackSize
[in] Taille de compression : 1, 2, 4, 8 ou 16 octets. La taille de compression est le nombre d’octets entre des champs adjacents.
rFieldOffsets
[in] Tableau de structures COR_FIELD_OFFSET, chacun spécifiant un champ de la classe et le décalage du champ au sein de la classe. Terminez le tableau par mdTokenNil
.
ulClassSize
[in] Taille, en octets, de la classe.
Notes
La classe est initialement définie en appelant la méthode IMetaDataEmit::DefineTypeDef et en spécifiant l’une des trois dispositions pour les champs de la classe : automatique, séquentielle ou explicite. Normalement, vous utilisez la disposition automatique et laissez le runtime choisir la meilleure façon de disposer les champs.
Néanmoins, vous avez peut-être envie de disposer les champs selon l’organisation utilisée par le code non managé. Dans ce cas, choisissez une disposition séquentielle ou explicite et appelez SetClassLayout
pour effectuer la disposition des champs :
Disposition séquentielle : spécifiez la taille de compression. Un champ s’aligne en fonction de sa taille naturelle ou de sa taille de compression, selon celle qui engendre le plus petit décalage du champ. Définissez
rFieldOffsets
etulClassSize
sur zéro.Disposition explicite : spécifiez le décalage de chaque champ ou spécifiez la taille de la classe et la taille de compression.
Spécifications
Plateformes : Consultez Configuration requise.
En-tête : Cor.h
Bibliothèque : Utilisée comme ressource dans MSCorEE.dll
Versions de .NET Framework : Disponible à partir de la version 1.0