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 메서드를 호출하고 클래스의 필드에 대한 세 개의 레이아웃(자동, 순차적 또는 명시적) 중 하나를 지정합니다. 일반적으로는 자동 레이아웃을 사용하여 런타임에서 필드에 가장 적합한 레이아웃을 선택하도록 합니다.
그러나 비관리 코드에서 사용하는 배열에 따라 필드 레이아웃을 지정할 수도 있습니다. 이 경우 순차적 레이아웃이나 명시적 레이아웃을 선택하고 SetClassLayout을 호출하여 필드의 레이아웃을 완료합니다.
순차적 레이아웃: 압축 크기를 지정합니다. 필드는 원래 크기나 압축 크기에 따라 정렬됩니다. 어느 경우에든 필드 오프셋은 더 작아집니다. rFieldOffsets와 ulClassSize는 0으로 설정합니다.
명시적 레이아웃: 각 필드의 오프셋을 지정하거나, 클래스 크기와 압축 크기를 지정합니다.
요구 사항
플랫폼: .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