为快速链接 PDB 提供上次加载错误的文件名和错误代码。
语法
typedef HRESULT __cdecl (*PFNMINIPDBERRORCALLBACK2)(
void* pvContext,
DWORD dwErrorCode,
const LPCOLESTR szObjOrPdb,
const LPCOLESTR szLib
);
参数
pvContext
[in]传递到调用 IDiaDataSourceEx::setPfnMiniPDBErrorCallback2 方法的上下文。
dwErrorCode
[in]描述特定错误的错误代码。 虽然类型化为此 DWORD 确实是一种 HRESULT。 最常见的值是 E_PDB_CORRUPT, E_DIA_COFF_ACCESS和 E_DIA_COMP_PDB_ACCESS。
szObjOrPdb
[in]与错误相关的 OBJ 或 PDB 文件的名称。
szLib
[in]如果 szObjOrPdb 引用 LIB 文件中的 OBJ 文件,则这是 LIB 的名称。 否则为 nullptr。
返回值
返回值会被忽略。
示例
HRESULT __cdecl ReportMiniPDBError(void *pvContext, DWORD hr, const wchar_t *szObjOrPdb, const wchar_t *szLib)
{
wprintf(L"Callback on fastlink PDB: hr = 0x%08x, szObjOrPdb=\"%ls\", szLib=\"%ls\"\n", hr, szObjOrPdb, szLib);
*reinterpret_cast<bool*>(pvContext) = true;
return S_OK;
}
...
bool callbackCalled = false;
HRESULT hr = pSourceEx->setPfnMiniPDBErrorCallback2(&callbackCalled, ReportMiniPDBError);
...