Aracılığıyla paylaş


IDiaInjectedSource

Hata Ayıklama Arabirimi Erişimi (DIA) veri kaynağında depolanan eklenen kaynak koduna erişir.

Sözdizimi

IDiaInjectedSource : IUnknown

Vtable Sırasına Göre Yöntemler

Aşağıdaki tabloda yönteminin yöntemleri gösterilmektedir IDiaInjectedSource.

Metot Açıklama
IDiaInjectedSource::get_crc Kaynak kodun baytlarından hesaplanan döngüsel yedeklilik denetimini (CRC) alır.
IDiaInjectedSource::get_length Kod bayt sayısını alır.
IDiaInjectedSource::get_filename Kaynağın dosya adını alır.
IDiaInjectedSource::get_filename Kaynağın derlendiği nesne dosyası adını alır.
IDiaInjectedSource::get_virtualFilename Dosya olmayan kaynak koduna verilen adı alır; yani, eklenen kod.
IDiaInjectedSource::get_sourceCompression Kullanılan kaynak sıkıştırmanın göstergesini alır.
IDiaInjectedSource::get_source Kaynak kod baytlarını alır.

Açıklamalar

Eklenen kaynak, derleme sırasında eklenen metindir. Bu, C++'ta kullanılan ön işlemci #include anlamına gelmez.

Arayanlar İçin Notlar

IDiaEnumInjectedSources::Item veya IDiaEnumInjectedSources::Next yöntemlerini çağırarak bu arabirimi alın. Arabirimi alma örneği için IDiaEnumInjectedSources arabirimine IDiaInjectedSource bakın.

Örnek

Bu örnek, arabirimden IDiaInjectedSource sağlanan verileri görüntüler. IDiaPropertyStorage arabirimini kullanan alternatif bir yaklaşım için IDiaEnumInjectedSources arabirimindeki örnbe bakın.

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_objectFilename(&objectFilename) == S_OK)
        {
            wprintf(L"%s", objectFilename);
        }
        else
        {
            wprintf(L"<none>");
        }
        wprintf(L"\n");

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

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

Gereksinimler

Üst bilgi: Dia2.h

Kitaplık: diaguids.lib

DLL: msdia80.dll

Ayrıca bkz.