Método IDebugHostType2::IsTypedef (dbgmodel.h)
O método IsTypedef é o único método capaz de ver se um tipo é um typedef. O método GetTypeKind se comportará como se fosse chamado no tipo subjacente.
Sintaxe
HRESULT IsTypedef(
bool *isTypedef
);
Parâmetros
isTypedef
Retornará true se o símbolo de tipo for um typedef e false se não for.
Retornar valor
Esse método retorna HRESULT.
Comentários
Código de exemplo
ComPtr<IDebugHostType> spType; /* get a type for a typedef (only FindTypeByName
since the compiler usually only emits base types
in the symbols for data) */
ComPtr<IDebugHostType2> spType2;
if (SUCCEEDED(spType.As(&spType2)))
{
bool isTypeDef;
if (SUCCEEDED(spType2->IsTypedef(&isTypeDef)))
{
// isTypeDef indicates whether the type is a typedef.
}
}
Qualquer tipo que seja um typedef se comportará como se o tipo fosse o tipo final subjacente ao typedef. Isso significa que métodos como GetTypeKind não indicarão que o tipo é um typedef. Da mesma forma, GetBaseType não retornará o tipo ao qual a definição se refere. Em vez disso, eles indicarão que se comportarão como se fossem chamados na definição final subjacente ao typedef. Por exemplo:
typedef MYSTRUCT *PMYSTRUCT;
typedef PMYSTRUCT PTRMYSTRUCT;
Um IDebugHostType para 'PMYSTRUCT ou PTRMYSTRUCT relatará as seguintes informações:
O método GetTypeKind retornará TypePointer. O tipo subjacente final MYSTRUCT * é de fato um ponteiro.
O método 'GetBaseType retornará um tipo para MYSTRUCT. O tipo subjacente de MYSTRUCT * é MYSTRUCT.
A única diferença aqui é como os métodos específicos do typedef em IDebugHostType2 se comportam. Esses métodos são:
STDMETHOD(IsTypedef)(_Out_ bool* isTypedef) PURE;
STDMETHOD(GetTypedefBaseType)(_Out_ IDebugHostType2** baseType) PURE;
STDMETHOD(GetTypedefFinalBaseType)(_Out_ IDebugHostType2** finalBaseType) PURE;
Neste exemplo:
- O método IsTypedef retornará true para PMYSTRUCT e PTRMYSTRUCT
- O método GetTypedefBaseType retornará MYSTRUCT * para PMYSTRUCT e PMYSTRUCT para PTRMYSTRUCT
- O método GetTypedefFinalBaseType retornará MYSTRUCT * para ambos os tipos
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | dbgmodel.h |