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

发布于 2024-09-10 21:29:10 字数 457 浏览 11 评论 0原文

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

我想要做的是实现一个可以从 C# 使用的 C++ DLL,如下所示:

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

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

此机制允许通过(C++ 端)轮询 C# 端或由 C# 端向 C++ 端报告来监视应用程序。

Does anyone know of any recent examples of how to create a simple COM component in C++ using Visual Studio 2008 so I can learn how to marshal different kinds of data between unmanaged and managed code, and back again. I've found a few tutorials that suggest a C++ ATL project, but project settings page no longer has the settings mentioned in the article.

What I want to do is implement a C++ DLL that would be used from C# like this:

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

The COM component would, at timed intervals, call various methods on the provided IMyCallback instance to obtain information. Similarly, the C# code might call various methods directly, when needed.

This mechanism is to enable an application to be monitored either by (the C++ side) polling the C# side, or by the C# side reporting back to the C++ side.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等风来 2024-09-17 21:29:11

您可以从 演练:使用文本编辑器创建 COM 服务器开始。它展示了如何使用 COM 属性而不是 IDL 来完成此操作,但对于您的目的来说,这应该足够了。

如果您需要更多 ATL 示例,请参阅 ATL 常规示例 部分有一堆示例,它们实现了各种 COM 功能,无论是作为进程内还是进程外服务器,并使用 IDL 而不是属性。您可以下载其中任何一个并根据您的目的进行调整。我可能会从 BEEPER

同时,与非托管代码互操作有关托管端的大量信息,尤其是涉及自定义封送、事件等更高级的内容时。

You can start from Walkthrough: Creating a COM Server Using Text Editor. It shows how to do it using COM attributes instead of an IDL, but for your purposes this should be sufficient.

If you want more ATL samples, the ATL General Samples section has bunch of samples that implement various COM features, both as in-proc or out-of-proc server, and using IDL instead of attributes. You can download any of them and tweak it to your purposes. I'd probably start with the BEEPER.

Meanwhile, Interoperating With Unmanaged Code has a lot of information about the managed side, especially when it comes to more advanced stuff like custom marshaling, events, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文