Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Получает сведения о макете в памяти полей, определенных указанным классом. То есть этот метод получает смещения полей класса.
Syntax
HRESULT GetClassLayout(
[in] ClassID classID,
[in, out] COR_FIELD_OFFSET rFieldOffset[],
[in] ULONG cFieldOffset,
[out] ULONG *pcFieldOffset,
[out] ULONG *pulClassSize);
Parameters
classID [in] Идентификатор класса, для которого будет получен макет.
rFieldOffset [in, out] Массив структур COR_FIELD_OFFSET , каждый из которых содержит маркеры и смещения полей класса.
cFieldOffset [in] Размер массива rFieldOffset .
pcFieldOffset [out] Указатель на общее количество доступных элементов. Если cFieldOffset значение равно 0, это значение указывает количество необходимых элементов.
pulClassSize [out] Указатель на расположение, содержащее размер класса в байтах.
Remarks
Метод GetClassLayout возвращает только поля, определенные самим классом. Если родительский класс класса также определил поля, профилировщик должен вызвать GetClassLayout родительский класс, чтобы получить эти поля.
Если вы используете GetClassLayout строковые классы, метод завершится ошибкой с кодом ошибки E_INVALIDARG. Используйте ICorProfilerInfo2::GetStringLayout , чтобы получить сведения о макете строки.
GetClassLayout Также произойдет сбой при вызове класса массива.
После GetClassLayout возврата необходимо убедиться, что rFieldOffset буфер был достаточно большим, чтобы содержать все доступные COR_FIELD_OFFSET структуры. Для этого сравните значение, указывающее pcFieldOffset на размер, разделенный на размер rFieldOffsetCOR_FIELD_OFFSET структуры. Если rFieldOffset недостаточно большого размера, выделите больший rFieldOffset буфер, обновите cFieldOffset его новым, большим размером и снова вызовите GetClassLayout .
Кроме того, можно сначала вызвать GetClassLayout буфер нулевой длины rFieldOffset , чтобы получить правильный размер буфера. Затем можно задать размер буфера значением, возвращенным и снова вызываемым pcFieldOffsetGetClassLayout .
Requirements
Платформы: см. раздел Требования к системе.
Заголовок: CorProf.idl, CorProf.h
Library: CorGuids.lib
версии .NET Framework: доступно с версии 2.0