gpt4 book ai didi

c++ - IDebugProgramProvider2.GetProvider 在 Vista 上处理数据

转载 作者:行者123 更新时间:2023-11-28 08:34:31 25 4
gpt4 key购买 nike

作为 IE 6/7 的 JavaScript Profiler 的一部分,我需要将我创建的自定义调试器加载到 IE 中。我在 XP 上运行良好,但无法在 Vista 上运行(完整故事在这里:http://damianblog.com/2008/09/09/tracejs-v2-rip/)。

在 Vista 上调用 GetProviderProcessData 失败。有人有什么建议吗?

谢谢, 达米安

// Create the MsProgramProvider
IDebugProgramProvider2* pIDebugProgramProvider2 = 0;
HRESULT st = CoCreateInstance(CLSID_MsProgramProvider, 0, CLSCTX_ALL, IID_IDebugProgramProvider2, (void**)&pIDebugProgramProvider2);
if(st != S_OK) {
return st;
}

// Get the IDebugProgramNode2 instances running in this process
AD_PROCESS_ID processID;
processID.ProcessId.dwProcessId = GetCurrentProcessId();
processID.ProcessIdType = AD_PROCESS_ID_SYSTEM;

CONST_GUID_ARRAY engineFilter;
engineFilter.dwCount = 0;

PROVIDER_PROCESS_DATA processData;

st = pIDebugProgramProvider2->GetProviderProcessData(PFLAG_GET_PROGRAM_NODES|PFLAG_DEBUGGEE, 0, processID, engineFilter, &processData);
if(st != S_OK) {
ShowError(L"GPPD Failed", st);
pIDebugProgramProvider2->Release();
return st;
}

最佳答案

知道错误结果是什么会很有帮助。

我能想到的可能的问题:

如果您获得的权限被拒绝,您很可能会遗漏一些必需的信息 Privilege在你的 ACL 中。新的有时没有很好地记录,请检查最新的 Platform SDK header 以查看是否还有新的。可能是在vista下你的ACL不再分配我默认的权限了。

如果您收到某种“未找到”类型的错误,则可能是 32 位/64 位问题。您的调试 API 在 vi​​sta 64 上可能仅在 64 位 COM 下可用。32 位/64 位互操作可能会非常困惑。

关于c++ - IDebugProgramProvider2.GetProvider 在 Vista 上处理数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com