IMetaDataEmit::SetClassLayout 方法
完成之前通过调用 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 方法,并从三种类字段布局中指定一种:自动、顺序或显式。 通常使用自动布局,让运行时选择最佳方式来布局字段。
不过,你可能会想要根据非托管代码使用的排列方式来布局字段。 在这种情况下,请选择顺序或显式布局,并调用 SetClassLayout
来完成字段布局:
顺序布局:指定封装大小。 根据自然大小或封装大小对齐字段,以字段偏移量较小者为准。 将
rFieldOffsets
和ulClassSize
设置为零。显式布局:指定每个字段的偏移量,或指定类大小和封装大小。
要求
平台:请参阅系统要求。
标头:Cor.h
库:用作 MSCorEE.dll 中的资源
.NET Framework 版本:自 1.0 起可用