Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обращается к внедренным исходным кодом, хранящимся в источнике данных доступа к интерфейсу отладки (DIA).
Синтаксис
IDiaInjectedSource : IUnknown
Методы в порядке таблицы Vtable
В следующей таблице показаны методы IDiaInjectedSource.
| Метод | Description |
|---|---|
| IDiaInjectedSource::get_crc | Извлекает циклическую проверку избыточности (CRC), вычисляемую из байтов исходного кода. |
| IDiaInjectedSource::get_length | Извлекает количество байтов кода. |
| IDiaInjectedSource::get_filename | Извлекает имя файла для источника. |
| IDiaInjectedSource::get_objectFilename | Извлекает имя файла объекта, в который компилировался источник. |
| IDiaInjectedSource::get_virtualFilename | Извлекает имя, указанное в исходном коде, отличном от файла; то есть код, который был введен. |
| IDiaInjectedSource::get_sourceCompression | Извлекает индикатор используемого исходного сжатия. |
| IDiaInjectedSource::get_source | Извлекает байты исходного кода. |
Замечания
Внедренный источник — это текст, внедренный во время компиляции. Это не означает, что препроцессор #include , используемый в C++.
Заметки для вызывающих абонентов
Получите этот интерфейс, вызвав методы IDiaEnumInjectedSources::Item или IDiaEnumInjectedSources::Next . Пример получения IDiaInjectedSource интерфейса см. в интерфейсе IDiaEnumInjectedSources.
Пример
В этом примере отображаются данные, доступные IDiaInjectedSource из интерфейса. Альтернативный подход с помощью интерфейса IDiaPropertyStorage см. в примере интерфейса 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);
}
}
Требования
Заголовок: Dia2.h
Библиотека: diaguids.lib
DLL: msdia80.dll