Aracılığıyla paylaş


IMetaDataEmit::SetClassLayout Method

DefineTypeDef Yöntemi'ne önceki bir çağrı tarafından tanımlanan bir sınıfın alan düzenini tamamlar.

Syntax

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

Parameters

td [in] Yerleştirilecek mdTypeDef sınıfı belirten bir belirteç.

dwPackSize [in] Ambalaj boyutu: 1, 2, 4, 8 veya 16 bayt. Paketleme boyutu, bitişik alanlar arasındaki bayt sayısıdır.

rFieldOffsets [in] Her biri sınıfın bir alanını ve sınıfın içindeki alanın uzaklığını belirten COR_FIELD_OFFSET yapıları dizisi. ile diziyi mdTokenNilsonlandırın.

ulClassSize [in] Sınıfının bayt cinsinden boyutu.

Remarks

Sınıfı başlangıçta IMetaDataEmit::D efineTypeDef yöntemi çağrılarak ve sınıfın alanları için üç düzenden biri belirtilerek tanımlanır: otomatik, sıralı veya açık. Normalde, otomatik düzeni kullanır ve çalışma zamanının alanları düzenlemenin en iyi yolunu seçmesine izin verirsiniz.

Ancak, alanların yönetilmeyen kodun kullandığı düzenlemeye göre düzenlenmesini isteyebilirsiniz. Bu durumda, sıralı veya açık düzen seçin ve alanların düzenini tamamlamak için çağrısı SetClassLayout yapın:

  • Sıralı düzen: Paketleme boyutunu belirtin. Bir alan, doğal boyutuna veya ambalaj boyutuna göre hizalanır ve bu da alanın daha küçük bir uzaklığıyla sonuçlanır. ve ulClassSize değerini sıfır olarak ayarlayınrFieldOffsets.

  • Açık düzen: Her alanın uzaklığını belirtin veya sınıf boyutunu ve paketleme boyutunu belirtin.

Requirements

Platform: Bkz. .NET tarafından desteklenen işletim sistemleri.

Header: Cor.h

Library: CorGuids.lib

See also