存取儲存在偵錯介面存取 (DIA) 資料源中的插入原始程式碼。
語法
IDiaInjectedSource : IUnknown
依照 Vtable 順序的方法
下表顯示 IDiaInjectedSource 方法。
| 方法 | 描述 |
|---|---|
| IDiaInjectedSource::get_crc | 擷取從原始程式碼位元組中計算的循環冗餘檢查 (CRC)。 |
| IDiaInjectedSource::get_length | 擷取程式碼的位元組數。 |
| IDiaInjectedSource::get_filename | 擷取原始碼的檔名。 |
| IDiaInjectedSource::get_objectFilename | 擷取原始碼編譯到其中的目的檔名。 |
| IDiaInjectedSource::get_virtualFilename | 擷取給予非檔案原始程式碼的名稱;也就是已插入的程式碼。 |
| IDiaInjectedSource::get_sourceCompression | 擷取所使用來源壓縮的指標。 |
| IDiaInjectedSource::get_source | 擷取原始程式碼位元組。 |
備註
插入的原始碼是在編譯期間插入的文字。 這並不表示是 C++ 中使用的預處理器 #include。
呼叫端注意事項
呼叫 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