다음을 통해 공유


IDebugHostType2::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

추가 정보

IDebugHostType2 인터페이스