Aracılığıyla paylaş


ICorProfilerInfo2::GetClassLayout Metodu

Belirtilen sınıf tarafından tanımlanan alanların bellekteki düzeni hakkında bilgi alır. Başka bir ifadeyle, bu yöntem sınıf alanlarının uzaklıklarını alır.

Sözdizimi

HRESULT GetClassLayout(  
    [in]  ClassID classID,  
    [in, out] COR_FIELD_OFFSET rFieldOffset[],  
    [in]  ULONG cFieldOffset,  
    [out] ULONG *pcFieldOffset,  
    [out] ULONG *pulClassSize);  

Parametreler

classID
[in] Düzenin alınacağı sınıfın kimliği.

rFieldOffset
[in, out] Her biri sınıf alanlarının belirteçlerini ve uzaklıklarını içeren bir COR_FIELD_OFFSET yapıları dizisi.

cFieldOffset
[in] Dizinin boyutu rFieldOffset .

pcFieldOffset
[out] Kullanılabilir öğelerin toplam sayısına ilişkin bir işaretçi. 0 ise cFieldOffset , bu değer gereken öğe sayısını gösterir.

pulClassSize
[out] Sınıfının bayt cinsinden boyutunu içeren bir konumun işaretçisi.

Açıklamalar

GetClassLayout yöntemi yalnızca sınıfı tarafından tanımlanan alanları döndürür. Sınıfın üst sınıfı da tanımlı alanlara sahipse, profil oluşturucunun bu alanları almak için üst sınıfta çağrısı GetClassLayout yapması gerekir.

Dize sınıfları ile kullanırsanız GetClassLayout yöntemi E_INVALIDARG hata koduyla başarısız olur. Bir dizenin düzeni hakkında bilgi almak için ICorProfilerInfo2::GetStringLayout kullanın. GetClassLayout bir dizi sınıfıyla çağrıldığında da başarısız olur.

Döndürdükten sonra GetClassLayout , arabelleğin rFieldOffset kullanılabilir COR_FIELD_OFFSET tüm yapıları içerecek kadar büyük olduğunu doğrulamanız gerekir. Bunu yapmak için, işaret eden pcFieldOffset değeri bir yapının boyutuna bölünmüş COR_FIELD_OFFSET boyutuyla rFieldOffset karşılaştırın. Yeterince büyük değilse rFieldOffset , daha büyük rFieldOffset bir arabellek ayırın, yeni, daha büyük boyutla güncelleştirin cFieldOffset ve yeniden çağırın GetClassLayout .

Alternatif olarak, doğru arabellek boyutunu elde etmek için ilk GetClassLayout olarak sıfır uzunlukta rFieldOffset bir arabellek çağırabilirsiniz. Daha sonra arabellek boyutunu döndürülen pcFieldOffset değere ayarlayabilir ve yeniden çağırabilirsiniz GetClassLayout .

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: CorProf.idl, CorProf.h

Kitaplığı: CorGuids.lib

.NET Framework Sürümleri: 2.0 sürümünden itibaren kullanılabilir

Ayrıca bkz.