gpt4 book ai didi

com - MIDL CoClass 派生自同一文件中定义的接口(interface)

转载 作者:行者123 更新时间:2023-12-02 02:23:36 27 4
gpt4 key购买 nike

当我从另一个 Proxy Server 项目中定义的接口(interface)派生所述接口(interface)时,为什么我不能在 idl 文件中定义一个接口(interface),然后让 CoClass 在同一文件的库 block 中派生它?

[
object,
uuid(00000000-0000-0000-0000-000000000000),
pointer_default(unique)
] interface IMyInterfaceB: IMyInterfaceA
{
[id(1), helpstring("")]
HRESULT NewMethod();
}

[
uuid(10000000-0000-0000-0000-000000000000),
helpstring("Type Library 1.00"),
version(1.00)
]
library MyLibrary
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");

[
uuid(20000000-0000-0000-0000-000000000001),
helpstring("My Class")
]
coclass CMyClass
{
interface IMyInterfaceA;
//interface IMyInterfaceB; /* error when I remove rem */
};

}

1>midl\oleaut32.dll:错误 MIDL2020:错误生成类型库:LayOut 失败:IMyInterfaceB (0x800288C6

最佳答案

正如 Hans Passant 指出的那样,我不应该选择 GUID,应该使用生成器来生成它们。虽然这不是问题,但本质上是相似的。在定义我的接口(interface)时,我没有遵循正确的 ID 模式,因为直到现在它并不重要。

我想我会重新阅读 COM Programming w/Microsoft .NET 中的相应部分。我在第一次尝试错误查找工具时找到了原因,通过打开 Visual Studios 高级模式功能暴露了它的存在。

经验教训:/

贝卡德:

关于com - MIDL CoClass 派生自同一文件中定义的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6977067/

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