ICorProfilerInfo2::GetClassLayout – metoda
Získá informace o rozložení v paměti polí definovaných zadanou třídou. To znamená, že tato metoda získá posuny polí třídy.
Syntaxe
HRESULT GetClassLayout(
[in] ClassID classID,
[in, out] COR_FIELD_OFFSET rFieldOffset[],
[in] ULONG cFieldOffset,
[out] ULONG *pcFieldOffset,
[out] ULONG *pulClassSize);
Parametry
classID
[v] ID třídy, pro kterou se načte rozložení.
rFieldOffset
[in, out] Pole COR_FIELD_OFFSET struktur, z nichž každá obsahuje tokeny a posuny polí třídy.
cFieldOffset
[v] Velikost rFieldOffset
pole.
pcFieldOffset
[out] Ukazatel na celkový počet dostupných prvků. Pokud cFieldOffset
je 0, tato hodnota označuje počet potřebných prvků.
pulClassSize
[out] Ukazatel na umístění, které obsahuje velikost třídy v bajtech.
Poznámky
Metoda GetClassLayout
vrátí pouze pole definovaná samotnou třídou. Pokud nadřazená třída třídy má také definovaná pole, profiler musí volat GetClassLayout
nadřazenou třídu, aby tato pole získal.
Pokud použijete GetClassLayout
s řetězcovými třídami, metoda selže s kódem chyby E_INVALIDARG. K získání informací o rozložení řetězce použijte ICorProfilerInfo2::GetStringLayout . GetClassLayout
selžou také při zavolání s třídou pole.
Po GetClassLayout
vrácení je nutné ověřit, že rFieldOffset
vyrovnávací paměť byla dostatečně velká, aby obsahovala všechny dostupné COR_FIELD_OFFSET
struktury. Provedete to tak, že porovnáte hodnotu, na kterou odkazujete pcFieldOffset
, s velikostí rFieldOffset
dělenou velikostí COR_FIELD_OFFSET
struktury. Pokud rFieldOffset
není dostatečně velký, přidělte větší rFieldOffset
vyrovnávací paměť, proveďte aktualizaci cFieldOffset
s novou větší velikostí a zavolejte GetClassLayout
znovu.
Případně můžete nejprve volat GetClassLayout
s vyrovnávací pamětí nulové délky rFieldOffset
, abyste získali správnou velikost vyrovnávací paměti. Pak můžete nastavit velikost vyrovnávací paměti na hodnotu vrácenou v pcFieldOffset
a volat GetClassLayout
znovu.
Požadavky
Platformy: Viz Požadavky na systém.
Záhlaví: CorProf.idl, CorProf.h
Knihovny: CorGuids.lib
Verze rozhraní .NET Framework: K dispozici od verze 2.0