共用方式為


IDiaDataSource::getStreamRawData

擷取具名數據流的原始位元組。

語法

HRESULT getStreamRawData (
   LPCOLESTR  stream,
   ULONGLONG  cbOffset,
   ULONGLONG  cbRead,
   ULONGLONG* pcbRead,
   BYTE*      pbData
);

參數

stream

[in]偵錯資訊內的數據流名稱。

cbOffset

[in]要開始讀取數據之數據流內的位移。

cbRead

[in]要擷取的位元元組數目。

pcbRead

[out]實際從數據流讀取的位元組數目。

pbData

[out]儲存讀取數據的位置。 在輸入上,大小至少 cbRead 必須是位元組。 成功傳回 *pcbRead 的位元組將會有效。

傳回值

如果成功,則傳回 S_OK。 如果命名數據流不存在於 PDB 內,API 可能會失敗,或可能會傳回長度為 0。

備註

程序資料庫是由多個數據流所組成。 其中有些數據流會命名。 您可以使用這個方法來收集這些具名數據流的相關信息。

若要取得數據流的大小,請使用 IDiaDataSourceEx::getStreamSize 方法。

範例

ULONGLONG countBytes = 0;
LPCOLESTR stream = L"/names";
HRESULT hr = pSource->getStreamSize( stream, &countBytes );
if (SUCCEEDED(hr)) {
  for (ULONGLONG cbOffset = 0, cbRead = 0; cbOffset < countBytes; cbOffset += cbRead) {
    BYTE buffer[100];
    cbRead = 0;
    hr = pSource->getStreamRawBytes( stream, cbOffset, std::min(countBytes - cbOffset, sizeof(buffer)), &cbRead, buffer);
    if (SUCCEEDED(hr)) {
      ...

另請參閱