共用方式為


IMetaDataEmit::SetClassLayout 方法

更新:2007 年 11 月

為之前的 IMetaDataEmit::DefineTypeDef 方法 呼叫所定義的類別,完成欄位配置。

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

參數

  • td
    [in] 指定類別配置方式的 mdTypeDef 語彙基元。

  • dwPackSize
    [in] 封裝大小:1、2、4、8 或 16 位元組。封裝大小是相鄰欄位之間的位元組數。

  • rFieldOffsets
    [in] COR_FIELD_OFFSET 結構的陣列,每個結構各指定類別的一個欄位和類別中此欄位的位移。以 mdTokenNil 結束陣列。

  • ulClassSize
    [in] 類別的大小 (以位元組為單位)。

備註

類別一開始是藉由呼叫 IMetaDataEmit::DefineTypeDef 方法,然後為類別的欄位指定下列其中一個配置來定義:自動、循序或明確。一般而言,您會使用自動配置,讓執行階段選擇欄位配置的最好方式。

不過,您可能想要根據 Unmanaged 程式碼所使用的排列方式來配置欄位。在此情況下,請選擇循序或明確配置,並且呼叫 SetClassLayout 來完成欄位配置:

  • 循序配置:指定封裝大小。根據欄位的自然大小或封裝大小 (就兩者中產生較小的欄位位移者),來對齊欄位。將 rFieldOffsets 和 ulClassSize 設為零。

  • 明確配置:指定每個欄位的位移,或指定類別大小和封裝大小。

需求

**平台:**請參閱 .NET Framework 系統需求

**標頭:**Cor.h

**程式庫:**當做 MSCorEE.dll 中的資源使用

**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

請參閱

參考

IMetaDataEmit

IMetaDataEmit2