Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Listet durch Adresse aufgeführt, in denen die verschiedenen Symbole in der Datenquelle enthalten.
IDiaEnumSymbolsByAddr : IUnknown
Methoden in die Vtable-Reihenfolge
In der folgenden Tabelle werden die Methoden von IDiaEnumSymbolsByAddran.
Methode |
Beschreibung |
|---|---|
Positioniert den Enumerator durch das Ausführen einer Suche in Abschnitt und Offset. |
|
Positioniert den Enumerator durch das Ausführen einer Suche in relative virtuelle Adresse (RVA). |
|
Positioniert den Enumerator durch das Ausführen einer Suche in virtuelle Adresse (VA). |
|
Ruft die folgenden Symbole in der Reihenfolge Adresse ab.Aktualisiert die Anzahl der abgerufenen Elemente durch Position des Enumerators. |
|
Ruft die vorherige Symbole in der Reihenfolge Adresse ab.Aktualisiert die Anzahl der abgerufenen Elemente durch Position des Enumerators. |
|
Erstellt eine Kopie eines Objekts. |
Hinweise
Diese Schnittstelle stellt die Adresse von Symbolen, die gruppiert werden.Um mit den Symbolen, die nach Typ gruppiert sind, beispielsweise SymTagUDT (benutzerdefinierter Typ) oder SymTagBaseClass, verwenden Sie die IDiaEnumSymbols-Schnittstelle.
Hinweise für Aufrufer
Rufen Sie diese Schnittstelle, indem sie die IDiaSession::getSymbolsByAddr-Methode aufruft.
Beispiel
Diese Funktion wird das Name und Adresse aller Symbole angezeigt, die durch relative virtuelle Adresse zugeordnet sind.
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 );
}
}
Anforderungen
Header: Dia2.h
Bibliothek: diaguids.lib
DLLs: msdia80.dll