IMetaDataEmit::SetClassLayout 方法
為之前的 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 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0