Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengakses kode sumber yang disuntikkan yang disimpan di sumber data Akses Antarmuka Debug (DIA).
Sintaks
IDiaInjectedSource : IUnknown
Metode dalam Urutan Vtable
Tabel berikut memperlihatkan metode IDiaInjectedSource.
| Metode | Deskripsi |
|---|---|
| IDiaInjectedSource::get_crc | Mengambil pemeriksaan redundansi siklik (CRC) yang dihitung dari byte kode sumber. |
| IDiaInjectedSource::get_length | Mengambil jumlah byte kode. |
| IDiaInjectedSource::get_filename | Mengambil nama file untuk sumbernya. |
| IDiaInjectedSource::get_objectFilename | Ambil nama file objek tempat sumber dikompilasi. |
| IDiaInjectedSource::get_virtualFilename | Mengambil nama yang diberikan ke kode sumber non-file; yaitu, kode yang dimasukkan. |
| IDiaInjectedSource::get_sourceCompression | Mengambil indikator pemadatan sumber yang digunakan. |
| IDiaInjectedSource::get_source | Mengambil byte kode sumber. |
Keterangan
Sumber yang dimasukkan adalah teks yang dimasukkan selama kompilasi. Ini tidak berarti pra-prosesor #include digunakan dalam C++.
Catatan untuk Penelepon
Dapatkan antarmuka ini dengan metode IDiaEnumInjectedSources::Item atau IDiaEnumInjectedSources::Next. Lihat antarmuka IDiaEnumInjectedSources untuk contoh mendapatkan antarmuka IDiaInjectedSource.
Contoh
Contoh ini menampilkan data yang tersedia dari antarmuka IDiaInjectedSource. Untuk pendekatan alternatif menggunakan antarmuka IDiaPropertyStorage, lihat contoh pada antarmuka 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);
}
}
Persyaratan
Header: Dia2.h
Library: diaguids.lib
DLL: msdia80.dll