Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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