Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Hämtar information om layouten i minnet för de fält som definierats av den angivna klassen. Den här metoden hämtar alltså förskjutningarna för klassens fält.
Syntax
HRESULT GetClassLayout(
[in] ClassID classID,
[in, out] COR_FIELD_OFFSET rFieldOffset[],
[in] ULONG cFieldOffset,
[out] ULONG *pcFieldOffset,
[out] ULONG *pulClassSize);
Parameters
classID [i] ID:t för klassen som layouten ska hämtas för.
rFieldOffset [in, ut] En matris med COR_FIELD_OFFSET strukturer som var och en innehåller token och förskjutningar av klassens fält.
cFieldOffset [i] Matrisens rFieldOffset storlek.
pcFieldOffset [ut] En pekare till det totala antalet tillgängliga element. Om cFieldOffset är 0 anger det här värdet antalet element som behövs.
pulClassSize [ut] En pekare till en plats som innehåller klassens storlek, i byte.
Remarks
Metoden GetClassLayout returnerar endast de fält som definierats av själva klassen. Om klassens överordnade klass också har definierat fält måste profileraren anropa GetClassLayout den överordnade klassen för att hämta dessa fält.
Om du använder GetClassLayout med strängklasser misslyckas metoden med felkoden E_INVALIDARG. Använd ICorProfilerInfo2::GetStringLayout för att få information om layouten för en sträng.
GetClassLayout misslyckas också när den anropas med en matrisklass.
När GetClassLayout du har returnerat den måste du kontrollera att bufferten rFieldOffset var tillräckligt stor för att innehålla alla tillgängliga COR_FIELD_OFFSET strukturer. Det gör du genom att jämföra värdet som pcFieldOffset pekar på med storleken rFieldOffset på dividerat med storleken på en COR_FIELD_OFFSET struktur. Om rFieldOffset den inte är tillräckligt stor allokerar du en större rFieldOffset buffert, uppdaterar cFieldOffset med den nya, större storleken och anropar GetClassLayout igen.
Du kan också först anropa GetClassLayout med en buffert med noll längd rFieldOffset för att få rätt buffertstorlek. Du kan sedan ange buffertstorleken till det värde som returneras och pcFieldOffset anropa GetClassLayout igen.
Requirements
Plattformar: Se Systemkrav.
Rubrik: CorProf.idl, CorProf.h
Library: CorGuids.lib
.NET Framework-versioner: tillgänglig sedan 2.0