Sdílet prostřednictvím


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

Viz také