IDiaInjectedSource
Accesses injected source code stored in the Debug Interface Access (DIA) data source.
Syntax
IDiaInjectedSource : IUnknown
Methoden in Vtable-Reihenfolge
In der folgenden Tabelle sind die Methoden von IDiaInjectedSource
aufgeführt.
Methode | BESCHREIBUNG |
---|---|
IDiaInjectedSource::get_crc | Ruft eine CRC-Prüfung (Cyclic Redundancy Check, zyklische Redundanzprüfung) ab, die aus den Bytes des Quellcodes berechnet wird. |
IDiaInjectedSource::get_length | Ruft die Anzahl von Bytes des Codes ab. |
IDiaInjectedSource::get_filename | Ruft den Dateinamen der Quelle ab. |
IDiaInjectedSource::get_objectFilename | Ruft den Namen der Objektdatei ab, in die die Quelle kompiliert wurde. |
IDiaInjectedSource::get_virtualFilename | Ruft den Namen ab, der dem nicht als Datei vorliegenden Quellcode (d. h. eingefügter Code) zugewiesen wurde. |
IDiaInjectedSource::get_sourceCompression | Ruft den Indikator der verwendeten Quellkomprimierung ab. |
IDiaInjectedSource::get_source | Ruft die Quellcodebytes ab. |
Bemerkungen
Die eingefügte Quelle ist Text, der während der Kompilierung eingefügt wird. Dies ist nicht der in C++ verwendeten Präprozessor #include
.
Hinweise für Aufrufer
Rufen Sie diese Schnittstelle ab, indem Sie die Methoden IDiaEnumInjectedSources::Item oder IDiaEnumInjectedSources::Next aufrufen. Ein Beispiel zum Abrufen der IDiaInjectedSource
-Schnittstelle finden Sie in der Beschreibung der IDiaEnumInjectedSources-Schnittstelle.
Beispiel
In diesem Beispiel werden die über die IDiaInjectedSource
-Schnittstelle verfügbaren Daten angezeigt. Einen alternativen Ansatz mit der IDiaPropertyStorage-Schnittstelle finden Sie im Beispiel in der Beschreibung der IDiaEnumInjectedSources-Schnittstelle.
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);
}
}
Requirements (Anforderungen)
Header: Dia2.h
Bibliothek: diaguids.lib
DLL: msdia80.dll