IDiaInjectedSource
Uzyskuje dostęp do wprowadzonego kodu źródłowego przechowywanego w źródle danych dostępu do interfejsu debugowania (DIA).
Składnia
IDiaInjectedSource : IUnknown
Metody w tabeli Vtable Order
W poniższej tabeli przedstawiono metody .IDiaInjectedSource
Metoda | opis |
---|---|
IDiaInjectedSource::get_crc | Pobiera cykliczne sprawdzanie nadmiarowości (CRC) obliczone z 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ło skompilowane źródło. |
IDiaInjectedSource::get_virtualFilename | Pobiera nazwę nadaną kodowi źródłowemu innej niż plik; oznacza to, że kod, który został wstrzyknięty. |
IDiaInjectedSource::get_sourceCompression | Pobiera wskaźnik używanej kompresji źródłowej. |
IDiaInjectedSource::get_source | Pobiera bajty kodu źródłowego. |
Uwagi
Wstrzyknięte źródło to tekst, który jest wstrzykiwany podczas kompilacji. Nie oznacza to preprocesora #include
używanego w języku C++.
Uwagi dotyczące wywoływania
Uzyskaj ten interfejs, wywołując metody IDiaEnumInjectedSources::Item lub IDiaEnumInjectedSources::Next . Zobacz interfejs IDiaEnumInjectedSources, aby zapoznać się z przykładem uzyskania interfejsuIDiaInjectedSource
.
Przykład
W tym przykładzie są wyświetlane dane dostępne z interfejsu IDiaInjectedSource
. Aby uzyskać alternatywne podejście przy użyciu interfejsu IDiaPropertyStorage , zobacz przykład w interfejsie 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);
}
}
Wymagania
Nagłówek: Dia2.h
Biblioteka: diaguids.lib
BIBLIOTEKA DLL: msdia80.dll