IDiaEnumSymbolsByAddr
Výčet různých symbolů obsažených ve zdroji dat podle adresy.
IDiaEnumSymbolsByAddr : IUnknown
Metody v pořadí virtuální tabulka
Následující tabulka obsahuje metody IDiaEnumSymbolsByAddr.
Metoda |
Description |
---|---|
Provedením vyhledávání podle oddílu a posun pozice čítače výčtu. |
|
Pozice čítače výčtu provedením vyhledávacího relativní virtuální adresu (RVA). |
|
Pozice čítače výčtu v provádění vyhledávání pomocí virtuální adresy (VA). |
|
Načte další symboly v pořadí podle adresy.Počet prvků, které jsou vyvolány aktualizuje umístění čítače výčtu. |
|
Obnoví předchozí symboly v pořadí podle adresy.Počet prvků, které jsou vyvolány aktualizuje umístění čítače výčtu. |
|
Vytvoří kopii objektu. |
Poznámky
Toto rozhraní poskytuje symboly, které jsou seskupeny podle adresy.Práce se symboly, které jsou seskupeny podle typu, například SymTagUDT (typ definovaný uživatelem) nebo SymTagBaseClass, použít IDiaEnumSymbols rozhraní.
Poznámky pro volající
Získat voláním rozhraní IDiaSession::getSymbolsByAddr metoda.
Příklad
Tato funkce zobrazí název a adresu všech symbolů seřazený podle relativní virtuální adresu.
void ShowSymbolsByAddress(IDiaSession *pSession)
{
CComPtr<IDiaEnumSymbolsByAddr> pEnumByAddr;
if ( FAILED( psession->getSymbolsByAddr( &pEnumByAddr ) ) )
{
Fatal( "getSymbolsByAddr" );
}
CComPtr<IDiaSymbol> pSym;
if ( FAILED( pEnumByAddr->symbolByAddr( 1, 0, &pSym ) ) )
{
Fatal( "symbolByAddr" );
}
DWORD rvaLast = 0;
if ( pSym->get_relativeVirtualAddress( &rvaLast ) == S_OK )
{
pSym = 0;
if ( FAILED( pEnumByAddr->symbolByRVA( rvaLast, &pSym ) ) )
{
Fatal( "symbolByAddr" );
}
printf( "Symbols in order\n" );
do
{
CDiaBSTR name;
if ( pSym->get_name( &name ) != S_OK )
{
printf( "\t0x%08X (%ws) <no name>\n", rvaLast );
}
else
{
printf( "\t0x%08X %ws\n", rvaLast, name );
}
pSym = 0;
celt = 0;
if ( FAILED( hr = pEnumByAddr->Next( 1, &pSym, &celt ) ) )
{
break;
}
} while ( celt == 1 );
}
}
Požadavky
Záhlaví: Dia2.h
Knihovny: diaguids.lib
Knihovna DLL: msdia80.dll