Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Récupère les informations de type sur le tableau spécifié en fonction de son adresse de débogage.
Syntaxe
int GetArrayTypeFromAddress(
IDebugAddress pAddress,
int[] pSig,
uint dwSigLength,
out IDebugField ppField
);
Paramètres
pAddress
[in] Adresse de débogage représentée par une interface IDebugAddress .
pSig
[in] Tableau à examiner.
dwSigLength
[in] Longueur en octets du pSig tableau.
ppField
[out] Retourne le type de tableau tel qu’il est représenté par une interface IDebugClassField .
Valeur de retour
En cas de réussite, retourne S_OK , sinon, retourne un code d'erreur.
Exemple
L’exemple suivant montre comment implémenter cette méthode pour un objet CDebugSymbolProvider qui expose l’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;
}