IDiaDataSource::loadDataForExe

會開啟並做準備.exe/.dll 檔案相關聯的偵錯資料。

HRESULT loadDataForExe (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   IUnknown* pCallback
);

參數

傳回值

如果成功的話,會傳回S_OK。 否則,會傳回錯誤碼。 下表顯示一些可能的錯誤代碼,這個方法。

描述

E_PDB_NOT_FOUND

無法開啟檔案,或檔案格式無效。

E_PDB_FORMAT

嘗試存取的檔案格式太舊。

E_PDB_INVALID_SIG

簽章不符。

E_PDB_INVALID_AGE

時代不符。

E_INVALIDARG

不正確的參數。

E_UNEXPECTED

已完成資料來源。

備註

偵錯.exe/.dll 檔案標頭名稱相關的偵錯資料的位置。

這個方法會偵錯標頭,然後搜尋並準備偵錯資料。 搜尋的進度,(選擇性) 可以報告和回呼朋友和家人。 例如, IDiaLoadCallback::NotifyDebugDir時叫用IDiaDataSource::loadDataForExe方法會尋找並處理偵錯目錄。

IDiaReadExeAtOffsetCallbackIDiaReadExeAtRVACallback介面讓用戶端應用程式提供的可執行檔中讀取資料,無法直接透過標準的檔案 I/O 存取檔案時的替代方法。

若要載入而不需驗證的.pdb 檔案,請使用IDiaDataSource::loadDataFromPdb方法。

若要驗證.pdb 檔案是否符合特定準則,請使用IDiaDataSource::loadAndValidateDataFromPdb方法。

若要直接從記憶體載入.pdb 檔,請使用IDiaDataSource::loadDataFromIStream方法。

範例

class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExe( L"myprog.exe", L".\debug", (IUnknown*)&callback);
if (FAILED(hr))
{
    // Report error
}

請參閱

參考

IDiaDataSource

IDiaLoadCallback

IDiaLoadCallback2

IDiaLoadCallback::NotifyDebugDir

IDiaReadExeAtOffsetCallback

IDiaReadExeAtRVACallback

IDiaDataSource::loadDataFromPdb

IDiaDataSource::loadAndValidateDataFromPdb

IDiaDataSource::loadDataFromIStream