Udostępnij za pośrednictwem


IDiaInjectedSource

Uzyskuje dostęp do wstrzykuje się kod źródłowy, przechowywanych w źródle danych DIA.

IDiaInjectedSource : IUnknown

Metody w kolejności Vtable

W poniższej tabeli przedstawiono metody IDiaInjectedSource.

Metoda

Opis

IDiaInjectedSource::get_crc

Pobiera wyboru cyklicznej kontroli redundancji (CRC), obliczana na podstawie bajtów kodu źródłowego.

IDiaInjectedSource::get_length

Pobiera liczbę bajtów kodu.

IDiaInjectedSource::get_filename

Pobiera nazwę pliku dla źródła.

IDiaInjectedSource::get_objectFilename

Pobiera nazwę pliku obiektu, do którego został skompilowany źródła.

IDiaInjectedSource::get_virtualFilename

Pobiera nazwę nadaną kod źródłowy plik; oznacza to, że kod zostało dodane.

IDiaInjectedSource::get_sourceCompression

Pobiera wskaźnik użytej kompresji źródła.

IDiaInjectedSource::get_source

Pobiera bajtów kodu źródłowego.

Uwagi

Źródło wniesiony jest tekst, który jest wprowadzany podczas kompilacji.Nie oznacza to preprocesora #include używane w języku C++.

Uwagi do wywoływania

Ten interfejs uzyskać, wywołując IDiaEnumInjectedSources::Item lub IDiaEnumInjectedSources::Next metody.Zobacz IDiaEnumInjectedSources interfejsu, na przykład uzyskania IDiaInjectedSource interfejsu.

Przykład

W tym przykładzie wyświetla dane, które są dostępne z IDiaInjectedSource interfejsu.Dla alternatywne podejście przy użyciu IDiaPropertyStorage interfejsu, zobacz przykład w IDiaEnumInjectedSources interfejsu.

void PrintInjectedSource(IDiaInjectedSource* pSource)
{
    ULONGLONG codeLength      = 0;
    DWORD     crc             = 0;
    DWORD     compressionType = 0;
    BSTR      sourceFilename  = NULL;
    BSTR      objectFilename  = NULL;
    BSTR      virtualFilename = NULL;

    std::cout << "Injected Source:" << std::endl;
    if (pSource != NULL)
    {
        if (pSource->get_crc(&crc) == S_OK &&
            pSource->get_sourceCompression(&compressionType) == S_OK &&
            pSource->get_length(&codeLength) == S_OK)
        {
            wprintf(L"  crc = %lu\n", crc);
            wprintf(L"  code length = %I64u\n",codeLength);
            wprintf(L"  compression type code = %lu\n", compressionType);
        }

        wprintf(L"  source filename: ");
        if (pSource->get_filename(&sourceFilename) == S_OK)
        {
            wprintf(L"%s", sourceFilename);
        }
        else
        {
            wprintf(L"<none>");
        }
        wprintf(L"\n");

        wprintf(L"  object filename: ");
        if (pSource->get_filename(&objectFilename) == S_OK)
        {
            wprintf(L"%s", objectFilename);
        }
        else
        {
            wprintf(L"<none>");
        }
        wprintf(L"\n");

        wprintf(L"  virtual filename: ");
        if (pSource->get_filename(&virtualFilename) == S_OK)
        {
            wprintf(L"%s", virtualFilename);
        }
        else
        {
            wprintf(L"<none>");
        }
        wprintf(L"\n");

        SysFreeString(sourceFilename);
        SysFreeString(objectFilename);
        SysFreeString(virtualFilename);
    }
}

Wymagania

Nagłówek: Dia2.h

Biblioteki: diaguids.lib

Biblioteka DLL: msdia80.dll

Zobacz też

Informacje

IDiaEnumInjectedSources::Item

IDiaEnumInjectedSources::Next

IDiaEnumInjectedSources

Inne zasoby

Interfejsy (Zestaw SDK dostępu do interfejsu debugowania)