gpt4 book ai didi

c++ - 创建实现特定接口(interface)的 ATL COM 对象

转载 作者:搜寻专家 更新时间:2023-10-31 00:05:31 27 4
gpt4 key购买 nike

我需要实现一个简单的 ATL COM 对象,该对象实现一个特定的接口(interface),我已为其提供了一个 .tlb 文件和一个 .idl 文件。接口(interface)非常简单,只包含一个方法。我过去创建过许多 ATL 对象,但从来没有创建过必须实现特定接口(interface)的对象。我需要什么来实现这一目标?我假设我需要在某处的新对象 IDL 中引用接口(interface)的 IDL 或 TLB?

欢迎任何指点。

最佳答案

它比此处建议的其他答案更加自动。所有样板代码都是由 Visual Studio 为您编写的。

你很幸运你有 .idl,我认为它是迄今为止最方便的。

您可以将 .idl 文件的内容粘贴到您的 ATL COM 项目的现有 .idl 文件中,这样您就可以访问其中的声明。例如,可以将类似这样的内容粘贴到 IDL 文件中:

[
object,
uuid(ecaac0b8-08e6-45e8-a075-c6349bc2d0ac),
dual,
nonextensible,
helpstring("IJim Interface"),
pointer_default(unique)
]
interface IJim : IDispatch
{
[id(1), helpstring("method SpliceMainbrace")] HRESULT SpliceMainbrace(BSTR* avast);
};

然后在类 View 中,右键单击您的类并选择添加 |实现接口(interface)

请注意,在此对话框中,您实际上可以浏览一个 .tlb 文件,但我认为最好为这些内容提供纯文本源,以便进行版本控制等。

从列表中选择IJim,按>按钮将其添加到要执行的列表中。按完成

Visual Studio 会将其添加到您的类中(连同一堆其他废话以使其正常工作):

// IJim Methods
public:
STDMETHOD(SpliceMainbrace)(BSTR * avast)
{
// Add your function implementation here.
return E_NOTIMPL;
}

关于c++ - 创建实现特定接口(interface)的 ATL COM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2190993/

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