Share via


IMetaDataEmit::SetClassLayout-Methode

Schließt das Layout der Felder für eine Klasse ab, die durch einen vorherigen Aufruf der DefineTypeDef-Methode definiert wurde.

Syntax

HRESULT SetClassLayout (  
    [in]  mdTypeDef           td,
    [in]  DWORD               dwPackSize,
    [in]  COR_FIELD_OFFSET    rFieldOffsets[],
    [in]  ULONG               ulClassSize
);  

Parameter

td
[in] Ein mdTypeDef-Token, das die Klasse angibt, für die das Layout festgelegt werden soll.

dwPackSize
[in] Die Paketgröße: 1, 2, 4, 8 oder 16 Bytes. Die Paketgröße ist die Anzahl von Bytes zwischen angrenzenden Feldern.

rFieldOffsets
[in] Ein Array von COR_FIELD_OFFSET-Strukturen, die jeweils ein Feld der Klasse und den Offset des Felds innerhalb der Klasse angeben. Beenden Sie das Array mit mdTokenNil.

ulClassSize
[in] Die Größe der Klasse in Bytes.

Bemerkungen

Die Klasse wird zunächst durch Aufrufen der IMetaDataEmit::DefineTypeDef-Methode definiert. Hierbei wird eines von drei Layouts für die Felder der Klasse angegeben: automatisch, sequenziell oder explizit. Normalerweise verwenden Sie das automatische Layout und überlassen der Runtime die Wahl der besten Layoutmethode für die Felder.

Möglicherweise möchten Sie jedoch, dass die Felder die gleiche Anordnung verwenden wie der nicht verwaltete Code. Wählen Sie in diesem Fall entweder sequenzielles oder explizites Layout aus, und rufen Sie SetClassLayout auf, um das Layout der Felder zu abzuschließen:

  • Sequenzielles Layout: Geben Sie die Paketgröße an. Ein Feld wird entweder nach seiner natürlichen Größe oder nach der Paketgröße ausgerichtet – je nachdem, welche Variante zu einem geringeren Offset des Felds führt. Legen Sie rFieldOffsets und ulClassSize auf „0“ fest.

  • Explizites Layout: Geben Sie entweder den Offset jedes Felds oder die Klassengröße und die Paketgröße an.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: Cor.h

Bibliothek: Als Ressource in „MSCorEE.dll“ verwendet

.NET Framework-Versionen: Seit Version 1.0 verfügbar

Weitere Informationen