Метод IDebugHostType::GetBitField (dbgmodel.h)
Если данный элемент структуры данных является битовое поле (например, ULONG MyBits:8), сведения о типе поля содержат сведения о размещении битового поля. Для получения этой информации можно использовать метод GetBitField. Этот метод завершится ошибкой для любого типа, не являющегося битовой. Это единственная причина сбоя метода. Простого вызова этого метода и изучения успешного или неудачного достаточно, чтобы отличить битовое поле от небитового поля.
Если заданный тип является битовое поле, позиции полей определяются полуоткрытым набором (lsbOfField + lengthOfField : lsbOfField]
Синтаксис
HRESULT GetBitField(
ULONG *lsbOfField,
ULONG *lengthOfField
);
Параметры
lsbOfField
Указывает наименьший значимый бит поля (где 0 определяется как наименьший значимый бит содержащего типа). Битовое поле определяется для использования битов с этого момента в направлении наиболее значительного бита содержащегося типа в соответствии с длиной, заданной аргументом lengthOfField.
lengthOfField
Число битов в поле. Это будет по крайней мере один и не больше числа битов в содержавом типе. Битовое поле занимает от бита, указанного в аргументе lsbOfField, вверх по отношению к наиболее значительному биту содержащего значения в соответствии с количеством битов, возвращаемых здесь.
Возвращаемое значение
Этот метод возвращает HRESULT, указывающее на успех или сбой.
Комментарии
Образец кода
ComPtr<IDebugHostType> spType; /* get the type of a field which is a bitmap */
ULONG lsb;
ULONG length;
if (SUCCEEDED(spType->GetBitField(&lsb, &length)))
{
// spType refers to a bitfield. The field is [lsb, lsb + length) in
// bit positions. Were you to read memory at the location/size specified
// by an object of this type, you would need to mask off bits at and
// above 'lsb + length' and shift right by 'lsb'
//
// Note that IModelObject::GetRawObject will automatically do this for you.
// So will creating an object with this type spType via CreateTypedObject.
}
Требования
Требование | Значение |
---|---|
Заголовок | dbgmodel.h |