IDiaSession::findLinesByAddr
Ruft die Zeilen in einer bestimmten Kompiliereinheit ab, die einer angegebenen Adresse enthalten.
HRESULT findLinesByAddr (
DWORD seg,
DWORD offset,
DWORD length,
IDiaEnumLineNumbers** ppResult
);
Parameter
seg
[in] Gibt die Stammkomponente Abschnitts der spezifischen Adresse auf.offset
[in] Gibt die Stammkomponente Offset der spezifischen Adresse an.length
[in] Gibt die Anzahl der Bytes Adressbereich an, die mit dieser Abfrage abzudecken.ppResult
[out] Gibt ein IDiaEnumLineNumbers-Objekt zurück, das eine Liste aller Zeilennummern enthält, die mit dem angegebenen Adressbereich enthalten.
Rückgabewert
Bei Erfolg gibt S_OKzurück. andernfalls gibt einen Fehlercode zurück.
Beispiel
In diesem Beispiel wird eine Funktion veranschaulicht, die alle Zeilennummern erhält, die in einer Funktion mit der Adresse und der Länge der Funktion enthalten sind.
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->findLinesByAddr( seg, offset, static_cast<DWORD>( length ), &pEnum );
}
return(pEnum);
}