Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Recupera informações de tipo sobre a matriz especificada dado seu endereço de depuração.
Sintaxe
int GetArrayTypeFromAddress(
IDebugAddress pAddress,
int[] pSig,
uint dwSigLength,
out IDebugField ppField
);
Parâmetros
pAddress
[em] O endereço de depuração representado por uma interface IDebugAddress .
pSig
[em] A matriz a ser examinada.
dwSigLength
[em] Comprimento em bytes da pSig matriz.
ppField
[saiu] Retorna o tipo de matriz como representado por uma interface IDebugClassField .
Valor de retorno
Se tiver êxito, retornará S_OK. Caso contrário, retornará um código de erro.
Exemplo
O exemplo a seguir mostra como implementar esse método para um objeto CDebugSymbolProvider que expõe a interface IDebugComPlusSymbolProvider.
HRESULT CDebugSymbolProvider::GetArrayTypeFromAddress(
IDebugAddress *pAddress,
BYTE *pSig,
DWORD dwSigLength,
IDebugField **ppField)
{
HRESULT hr = E_FAIL;
CDEBUG_ADDRESS da;
CDebugGenericParamScope* pGenScope = NULL;
METHOD_ENTRY( CDebugDynamicFieldSymbol::GetArrayTypeFromAddress );
ASSERT(IsValidObjectPtr(this, CDebugSymbolProvider));
ASSERT(IsValidWritePtr(ppField, IDebugField*));
IfFailGo( pAddress->GetAddress(&da) );
if ( S_OK == hr )
{
IfNullGo( pGenScope = new CDebugGenericParamScope(da.GetModule(), da.tokClass, da.GetMethod()), E_OUTOFMEMORY );
IfFailGo( this->CreateType((const COR_SIGNATURE*)(pSig), dwSigLength, da.GetModule(), mdMethodDefNil, pGenScope, ppField) );
}
Error:
METHOD_EXIT( CDebugDynamicFieldSymbol::GetArrayTypeFromAddress, hr );
RELEASE( pGenScope );
return hr;
}