Sdílet prostřednictvím


IDiaSectionContrib

Načte data popisující příspěvek oddílu, tj. souvislý blok paměti, který k obrázku přispěl compiland.

Syntaxe

IDiaSectionContrib : IUnknown

Metody v pořadí Vtable

Následující tabulka ukazuje metody IDiaSectionContrib.

metoda Popis
IDiaSectionContrib::get_compiland Načte odkaz na symbol compilandu, který přispěl v této části.
IDiaSectionContrib::get_addressSection Načte část oddílu adresy příspěvku.
IDiaSectionContrib::get_addressOffset Načte část posunu adresy příspěvku.
IDiaSectionContrib::get_relativeVirtualAddress Načte relativní virtuální adresu (RVA) obrázku příspěvku.
IDiaSectionContrib::get_virtualAddress Načte virtuální adresu (VA) příspěvku.
IDiaSectionContrib::get_length Načte počet bajtů v oddílu.
IDiaSectionContrib::get_notPaged Načte příznak, který označuje, jestli oddíl nemůže být stránkován z paměti.
IDiaSectionContrib::get_nopad Načte příznak označující, jestli se oddíl nemá vycpávat na další hranici paměti.
IDiaSectionContrib::get_code Načte příznak, který označuje, jestli oddíl obsahuje spustitelný kód.
IDiaSectionContrib::get_code16bit Načte příznak, který označuje, jestli oddíl obsahuje 16bitový kód.
IDiaSectionContrib::get_initializedData Načte příznak, který označuje, jestli oddíl obsahuje inicializovaná data.
IDiaSectionContrib::get_uninitializedData Načte příznak, který označuje, jestli oddíl obsahuje neinicializovaná data.
IDiaSectionContrib::get_informational Načte příznak označující, jestli oddíl obsahuje komentáře nebo podobné informace.
IDiaSectionContrib::get_remove Načte příznak, který označuje, jestli je oddíl odebrán před tím, než je součástí image v paměti.
IDiaSectionContrib::get_comdat Načte příznak, který označuje, jestli je oddíl záznamem COMDAT.
IDiaSectionContrib::get_discardable Načte příznak, který označuje, jestli je možné oddíl zahodit.
IDiaSectionContrib::get_notCached Načte příznak, který označuje, jestli oddíl nelze uložit do mezipaměti.
IDiaSectionContrib::get_share Načte příznak, který označuje, jestli je možné oddíl sdílet v paměti.
IDiaSectionContrib::get_execute Načte příznak, který označuje, jestli je oddíl spustitelný jako kód.
IDiaSectionContrib::get_read Načte příznak, který označuje, jestli je možné oddíl přečíst.
IDiaSectionContrib::get_write Načte příznak, který označuje, jestli je možné oddíl zapsat.
IDiaSectionContrib::get_dataCrc Načte cyklickou kontrolu redundance (CRC) dat v oddílu.
IDiaSectionContrib::get_relocationsCrc Načte CRC informace o přemístění oddílu.
IDiaLineNumber::get_compilandId Načte identifikátor compilandu pro oddíl.

Poznámky

Poznámky pro volající

Toto rozhraní je získáno voláním IDiaEnumSectionContribs::Item a IDiaEnumSectionContribs::Next metody. Příklad získání IDiaSectionContrib rozhraní najdete v rozhraní IDiaEnumSectionContribs.

Příklad

Tato funkce zobrazuje adresu každého oddílu spolu se všemi přidruženými symboly. Podívejte se na IDiaEnumSectionContribs rozhraní, abyste viděli, jak IDiaSectionContrib se rozhraní získá.

void PrintSectionContrib(IDiaSectionContrib* pSecContrib, IDiaSession* pSession)
{
    if (pSecContrib != NULL && pSession != NULL)
    {
        DWORD rva;
        if ( pSecContrib->get_relativeVirtualAddress( &rva ) == S_OK )
        {
            printf( "\taddr: 0x%.8X", rva );
            pSecContrib = NULL;
            CComPtr<IDiaSymbol> pSym;
            if ( psession->findSymbolByRVA( rva, SymTagNull, &pSym ) == S_OK )
            {
                CDiaBSTR name;
                DWORD    tag;
                pSym->get_symTag( &tag );
                pSym->get_name( &name );
                printf( "     symbol: %ws (%ws)\n",
                        name != NULL ? name : L"",
                        szTags[ tag ] );
            }
            else
            {
                printf( "<no symbol found?>\n" );
            }
        }
        else
        {
            DWORD isect;
            DWORD offset;
            pSecContrib->get_addressSection( &isect );
            pSecContrib->get_addressOffset( &offset );
            printf( "\taddr: 0x%.4X:0x%.8X", isect, offset );
            pSecContrib = NULL;
            CComPtr<IDiaSymbol> pSym;
            if ( SUCCEEDED( psession->findSymbolByAddr(
                                              isect,
                                              offset,
                                              SymTagNull,
                                              &pSym )
                          )
               )
            {
                CDiaBSTR name;
                DWORD    tag;
                pSym->get_symTag( &tag );
                pSym->get_name( &name );
                printf( "     symbol: %ws (%ws)\n",
                    name != NULL ? name : L"",
                    szTags[ tag ] );
            }
            else
            {
                printf( "<no symbol found?>\n" );
            }
        }
    }
}

Požadavky

Hlavička: Dia2.h

Knihovna: diaguids.lib

DLL: msdia80.dll

Viz také