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.
Ruft eine Aufzählung ab, mit der ein Client die MSIL-Offsets innerhalb eines angegebenen Adressbereichs durchlaufen kann.
Syntax
HRESULT findILOffsetsByAddr (
DWORD isect,
DWORD offset,
DWORD length,
IDiaEnumLineNumbers** ppResult
);
Parameter
isect
[in] Gibt die Abschnittskomponente der betreffenden Adresse an.
offset
[in] Gibt die Offsetkomponente der betreffenden Adresse an.
length
[in] Gibt die Anzahl der Bytes des Adressbereichs an, der mit dieser Abfrage abgedeckt werden soll.
ppResult
[out] Gibt ein IDiaEnumLineNumbers Objekt zurück, das eine Liste aller MSIL-Offsets enthält, die den angegebenen Adressbereich abdecken.
Rückgabewert
Wenn die Ausführung erfolgreich ist, wird S_OK, andernfalls ein Fehlercode zurückgegeben.
Beispiel
Dieses Beispiel zeigt eine Funktion, die den gesamten in einer Funktion enthaltenen MSIL-Offset mithilfe der Adresse und Länge der Funktion abruft.
IDiaEnumLineNumbers* GetLineNumbersByAddr(IDiaSymbol *pFunc,
IDiaSession *pSession)
{
IDiaEnumLineNumbers* pEnum = NULL;
DWORD seg;
DWORD offset;
ULONGLONG length;
if (pFunc->get_addressSection ( &seg ) == S_OK &&
pFunc->get_addressOffset ( &offset ) == S_OK)
{
pFunc->get_length ( &length );
pSession->findILOffsetsByAddr( seg, offset, static_cast<DWORD>( length ), &pEnum );
}
return(pEnum);
}