IDiaInjectedSource
Přistupuje ke zdrojovému kódu uloženému ve zdroji dat DIA (Debug Interface Access).
Syntaxe
IDiaInjectedSource : IUnknown
Metody v pořadí Vtable
Následující tabulka ukazuje metody IDiaInjectedSource
.
metoda | Popis |
---|---|
IDiaInjectedSource::get_crc | Načte cyklickou kontrolu redundance (CRC) vypočítanou z bajtů zdrojového kódu. |
IDiaInjectedSource::get_length | Načte počet bajtů kódu. |
IDiaInjectedSource::get_filename | Načte název souboru pro zdroj. |
IDiaInjectedSource::get_objectFilename | Načte název souboru objektu, do kterého byl zdroj zkompilován. |
IDiaInjectedSource::get_virtualFilename | Načte název zadaný zdrojovému kódu, který není souborem; to znamená kód, který byl vložen. |
IDiaInjectedSource::get_sourceCompression | Načte indikátor použité komprese zdroje. |
IDiaInjectedSource::get_source | Načte bajty zdrojového kódu. |
Poznámky
Vložený zdroj je text vložený během kompilace. To neznamená, že preprocesor #include
použitý v jazyce C++.
Poznámky pro volající
Získejte toto rozhraní voláním IDiaEnumInjectedSources::Item nebo IDiaEnumInjectedSources::Next metody. Příklad získání IDiaInjectedSource
rozhraní najdete v rozhraní IDiaEnumInjectedSources.
Příklad
Tento příklad zobrazí data dostupná z IDiaInjectedSource
rozhraní. Alternativní přístup pomocí rozhraní IDiaPropertyStorage naleznete v příkladu v rozhraní IDiaEnumInjectedSources .
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);
}
}
Požadavky
Hlavička: Dia2.h
Knihovna: diaguids.lib
DLL: msdia80.dll