【问题标题】:E_NOINTERFACE returnedE_NOINTERFACE 返回
【发布时间】:2010-07-06 21:57:46
【问题描述】:

我有一个 COM Client 和一个 COM Server,COM Server 持有一个客户端暴露的接口,现在客户端实际上只是一个 EXE,如何确保客户端暴露的接口对服务器可见?

因为当我现在在服务器中的该接口上调用 CoCreateInstance 时,我得到一个 E_NOINTERFACE,我怀疑这是因为系统上注册的客户端没有代理/存根 dll。

【问题讨论】:

    标签: c++ com atl


    【解决方案1】:

    是的,如果 COM 无法编组接口,则可以返回 E_NOINTERFACE。您可以使用Process Monitor 尝试找出到底发生了什么。

    【讨论】:

    • 所以我检查了注册表并且接口的 IID 存在,但是它仍然返回错误,我还能做些什么吗?
    • 在 ProcMon 第一次查询 Key 时,它会显示“BUFFER TOO SMALL”
    • 好的,IID 存在,那又怎样?如果 COM 尝试查找代理/存根但失败了怎么办?您不应该期望您只查看 Process Monitor 输出片刻就可以立即发现问题所在。
    猜你喜欢
    • 2012-01-15
    • 1970-01-01
    • 2021-08-17
    • 2021-08-22
    • 2016-07-10
    • 1970-01-01
    • 2010-12-19
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多