gpt4 book ai didi

c++ - QueryInterface 因 E_ACCESSDENIED 失败

转载 作者:太空狗 更新时间:2023-10-29 21:06:52 25 4
gpt4 key购买 nike

下面的方法是DCOM服务器方法。 COM 客户端和服务器运行在不同的 WinXP 机器上。 COM客户端调用RegisterClient方法注册回调接口(interface)。问题是 QueryInterface 方法失败,错误代码为 E_ACCESSDENIED。问题的原因可能是什么?

STDMETHODIMP CGEMExtension::RegisterClient(IUnknown** ppGEMExtensionEvents, int* nClientId, int* nResult)
{
HRESULT hRes = (*ppGEMExtensionEvents)->QueryInterface(IID_IGEMExtension,(void**)&pUnknown);
return hRes;
}

最佳答案

当你得到一个 E_ACCESSDENIED 时,这意味着你有权限问题(不要浪费你的时间在防火墙或注册上 - 前者会报错告诉你服务不可用,后者会告诉你类是未注册等)。 COM 依赖于 Windows 权限,因此这是您应该关注的。

在您的情况下,如果我理解正确的话,服务器实际上会调用客户端,以获得正确的界面。为此,运行服务器的用户应该在客户端拥有正确的权限。几点建议:

  1. 按照 daramarak 的建议,让服务器和客户端使用相同的域用户,或使用相同密码的相同本地用户。
  2. 在客户端,设置this setting到“经典”。
  3. 使用DCOMCNFG 为服务器的用户(如果客户端知道)提供额外的权限。 .

关于c++ - QueryInterface 因 E_ACCESSDENIED 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6503136/

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