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.
Mendapatkan informasi tentang tata letak, dalam memori, bidang yang ditentukan oleh kelas yang ditentukan. Artinya, metode ini mendapatkan offset bidang kelas.
Syntax
HRESULT GetClassLayout(
[in] ClassID classID,
[in, out] COR_FIELD_OFFSET rFieldOffset[],
[in] ULONG cFieldOffset,
[out] ULONG *pcFieldOffset,
[out] ULONG *pulClassSize);
Parameters
classID [di] ID kelas tempat tata letak akan diambil.
rFieldOffset [masuk, keluar] Array struktur COR_FIELD_OFFSET , yang masing-masing berisi token dan offset bidang kelas.
cFieldOffset [di] Ukuran rFieldOffset array.
pcFieldOffset [out] Penunjuk ke jumlah total elemen yang tersedia. Jika cFieldOffset adalah 0, nilai ini menunjukkan jumlah elemen yang diperlukan.
pulClassSize [out] Penunjuk ke lokasi yang berisi ukuran, dalam byte, dari kelas .
Remarks
Metode ini GetClassLayout hanya mengembalikan bidang yang ditentukan oleh kelas itu sendiri. Jika kelas induk kelas juga telah menentukan bidang, profiler harus memanggil GetClassLayout kelas induk untuk mendapatkan bidang tersebut.
Jika Anda menggunakan GetClassLayout dengan kelas string, metode akan gagal dengan kode kesalahan E_INVALIDARG. Gunakan ICorProfilerInfo2::GetStringLayout untuk mendapatkan informasi tentang tata letak string.
GetClassLayout juga akan gagal ketika dipanggil dengan kelas array.
Setelah GetClassLayout kembali, Anda harus memverifikasi bahwa rFieldOffset buffer cukup besar untuk berisi semua struktur yang tersedia COR_FIELD_OFFSET . Untuk melakukan ini, bandingkan nilai yang pcFieldOffset menunjuk ke dengan ukuran rFieldOffset dibagi dengan ukuran COR_FIELD_OFFSET struktur. Jika rFieldOffset tidak cukup besar, alokasikan buffer yang lebih besar rFieldOffset , perbarui cFieldOffset dengan ukuran baru, lebih besar, dan panggil GetClassLayout lagi.
Atau, Anda dapat terlebih dahulu memanggil GetClassLayout dengan buffer panjang rFieldOffset nol untuk mendapatkan ukuran buffer yang benar. Anda kemudian dapat mengatur ukuran buffer ke nilai yang dikembalikan pcFieldOffset dan memanggil GetClassLayout lagi.
Requirements
Platform: Lihat Persyaratan Sistem.
Header: CorProf.idl, CorProf.h
Library: CorGuids.lib
.NET Framework Versions: Tersedia sejak 2.0