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::D efineTypeDef 메서드를 호출하고 클래스 필드에 대해 자동, 순차적 또는 명시적 세 가지 레이아웃 중 하나를 지정하여 정의됩니다. 일반적으로 자동 레이아웃을 사용하고 런타임에서 필드를 배치하는 가장 좋은 방법을 선택하도록 합니다.
그러나 비관리 코드에서 사용하는 정렬에 따라 필드를 배치할 수 있습니다. 이 경우 순차적 또는 명시적 레이아웃을 선택하고 SetClassLayout
을 호출하여 필드 레이아웃을 완료합니다.
순차적 레이아웃: 압축 크기를 지정합니다. 필드는 자연 크기 또는 압축 크기에 따라 정렬되므로 필드의 오프셋이 작아집니다.
rFieldOffsets
및ulClassSize
을 0으로 설정합니다.명시적 레이아웃: 각 필드의 오프셋을 지정하거나 클래스 크기와 압축 크기를 지정합니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: Cor.h
라이브러리: MsCorEE.dll에서 리소스로 사용됩니다.
.NET Framework 버전: 1.0부터 사용 가능
참고 항목
.NET