Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menyelesaikan tata letak bidang untuk kelas yang telah ditentukan oleh panggilan sebelumnya ke Metode DefineTypeDef.
Syntax
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
Parameters
td [di] Token mdTypeDef yang menentukan kelas yang akan ditata.
dwPackSize [di] Ukuran pengemasan: 1, 2, 4, 8 atau 16 byte. Ukuran pengemasan adalah jumlah byte antara bidang yang berdekatan.
rFieldOffsets [di] Array struktur COR_FIELD_OFFSET , yang masing-masing menentukan bidang kelas dan offset bidang dalam kelas . Hentikan array dengan mdTokenNil.
ulClassSize [di] Ukuran, dalam byte, dari kelas .
Remarks
Kelas awalnya didefinisikan dengan memanggil metode IMetaDataEmit::D efineTypeDef , dan menentukan salah satu dari tiga tata letak untuk bidang kelas: otomatis, berurutan, atau eksplisit. Biasanya, Anda akan menggunakan tata letak otomatis dan membiarkan runtime memilih cara terbaik untuk meletakkan bidang.
Namun, Anda mungkin ingin bidang ditata sesuai dengan pengaturan yang digunakan kode yang tidak dikelola. Dalam hal ini, pilih tata letak berurutan atau eksplisit dan panggil SetClassLayout untuk menyelesaikan tata letak bidang:
Tata letak berurutan: Tentukan ukuran pengemasan. Bidang diselaraskan sesuai dengan ukuran alaminya atau ukuran pengemasannya, mana pun yang menghasilkan offset bidang yang lebih kecil. Atur
rFieldOffsetsdanulClassSizeke nol.Tata letak eksplisit: Tentukan offset setiap bidang atau tentukan ukuran kelas dan ukuran pengemasan.
Requirements
Platform: Lihat Sistem operasi yang didukung .NET.
Header: Cor.h
Library: CorGuids.lib