gpt4 book ai didi

c++ - 在 Visual Studio 2008 中使用 C++ 创建简单 COM 组件的示例

转载 作者:行者123 更新时间:2023-11-28 08:27:54 35 4
gpt4 key购买 nike

有谁知道关于如何使用 Visual Studio 2008 在 C++ 中创建简单 COM 组件的任何最新示例,以便我可以学习如何在非托管代码和托管代码之间编码不同类型的数据,然后再返回。我找到了一些建议使用 C++ ATL 项目的教程,但项目设置页面不再具有文章中提到的设置。

我想要做的是实现一个 C++ DLL,它将像这样从 C# 中使用:

MyComComponent myComp = new MyComComponent();
myComp.Register(new ClassWithCallbacks()) /* implements IMyCallback */

COM 组件会在规定的时间间隔内调用提供的 IMyCallback 实例上的各种方法来获取信息。同样,C# 代码可能会在需要时直接调用各种方法。

此机制旨在通过(C++ 端)轮询 C# 端或通过 C# 端向 C++ 端报告来监控应用程序。

最佳答案

你可以从Walkthrough: Creating a COM Server Using Text Editor开始.它展示了如何使用 COM 属性而不是 IDL 来完成此操作,但对于您的目的而言,这应该足够了。

如果您想要更多 ATL 样本,ATL General Samples部分有一堆实现各种 COM 功能的示例,作为进程内或进程外服务器,并使用 IDL 而不是属性。您可以下载其中任何一个并根据您的目的进行调整。我可能会从 BEEPER 开始.

与此同时,Interoperating With Unmanaged Code有很多关于托管方面的信息,尤其是当涉及到更高级的东西,如自定义编码(marshal)处理、事件等时。

关于c++ - 在 Visual Studio 2008 中使用 C++ 创建简单 COM 组件的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3296493/

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