IDiaEnumSymbolsByAddrIDiaEnumSymbolsByAddr

Listet die verschiedenen in der Datenquelle enthaltenen Symbole auf.Enumerates by address the various symbols contained in the data source.

SyntaxSyntax

IDiaEnumSymbolsByAddr : IUnknown

Methoden in Vtable-ReihenfolgeMethods in Vtable Order

In der folgenden Tabelle sind die Methoden von IDiaEnumSymbolsByAddr aufgeführt.The following table shows the methods of IDiaEnumSymbolsByAddr.

MethodeMethod BeschreibungDescription
IDiaEnumSymbolsByAddr::symbolByAddrIDiaEnumSymbolsByAddr::symbolByAddr Positioniert den Enumerator, indem eine Suche nach Abschnitt und Offset durchgeführt wird.Positions the enumerator by performing a lookup by section and offset.
IDiaEnumSymbolsByAddr::symbolByRVAIDiaEnumSymbolsByAddr::symbolByRVA Positioniert den Enumerator, indem eine Suche durch eine relative virtuelle Adresse (RVA) durchgeführt wird.Positions the enumerator by performing a lookup by relative virtual address (RVA).
IDiaEnumSymbolsByAddr::symbolByVAIDiaEnumSymbolsByAddr::symbolByVA Positioniert den Enumerator, indem eine Suche nach einer virtuellen Adresse (VA) durchgeführt wird.Positions the enumerator by performing a lookup by virtual address (VA).
IDiaEnumSymbolsByAddr::NextIDiaEnumSymbolsByAddr::Next Ruft die nächsten Symbole in der Order by-Adresse ab.Retrieves the next symbols in order by address. Aktualisiert die enumeratorposition nach der Anzahl der abgerufenen Elemente.Updates the enumerator position by number of elements fetched.
IDiaEnumSymbolsByAddr::PrevIDiaEnumSymbolsByAddr::Prev Ruft die vorherigen Symbole in der Order by-Adresse ab.Retrieves the previous symbols in order by address. Aktualisiert die enumeratorposition nach der Anzahl der abgerufenen Elemente.Updates the enumerator position by number of elements fetched.
IDiaEnumSymbolsByAddr::CloneIDiaEnumSymbolsByAddr::Clone Erstellt eine Kopie eines Objekts.Makes a copy of an object.

HinweiseRemarks

Diese Schnittstelle stellt Symbole gruppiert nach Adresse bereit.This interface provides symbols grouped by address. Zum Arbeiten mit Symbolen, die nach Typ gruppiert sind (z. b. SymTagUDT (benutzerdefinierter Typ) oder SymTagBaseClass, verwenden Sie die IDiaEnumSymbols -Schnittstelle.To work with symbols grouped by type, for example SymTagUDT (user-defined type) or SymTagBaseClass, use the IDiaEnumSymbols interface.

Hinweise für AufruferNotes for Callers

Rufen Sie diese Schnittstelle durch Aufrufen der IDiaSession:: getSymbolsByAddr -Methode ab.Obtain this interface by calling the IDiaSession::getSymbolsByAddr method.

BeispielExample

Diese Funktion zeigt den Namen und die Adresse aller von der relativen virtuellen Adresse bestellten Symbole an.This function displays the name and address of all symbols ordered by relative virtual address.

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 );
    }
}

AnforderungenRequirements

Header: Dia2.hHeader: Dia2.h

Bibliothek: diaguids. libLibrary: diaguids.lib

DLL: msdia80.dllDLL: msdia80.dll

Siehe auchSee also