如何设计应从 C++ 和 C# 访问的组件

Posted

技术标签:

【中文标题】如何设计应从 C++ 和 C# 访问的组件【英文标题】:How to design a Component that should be accessed from both C++ and C# 【发布时间】:2014-06-18 18:38:09 【问题描述】:

我的应用程序在非托管 C++ 和 C# 中有子系统(组件/dll)。现在我要为特定目的创建一个新的子系统(dll),它应该有类和方法。这些类和方法可以被其他子系统 C++ 或 C# 使用。

如何设计一个既可以被 C++ 也可以被 C# 使用的组件。

【问题讨论】:

鉴于上述限制,COM 将是最明显的选择。 您是指 C++/CLI 还是纯粹的 C++? 这里的C++指的是非托管C++ 【参考方案1】:

有几种可能。

如果您准备好使用托管 C++,则可以直接在 C# 中创建组件,然后重用它们。托管 C++ 不是最方便的语言,但非常适合为 C++ 代码中使用的 .net 组件创建中间层。

或者你可以让你的组件确实是 COM 可见的,正如 cmets 中所建议的那样。

我可能会选择第一种方法,因为它不需要注册组件。

【讨论】:

以上是关于如何设计应从 C++ 和 C# 访问的组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中访问查找所有控件和所有组件到表单中?

设计模式在实际业务应用中的介绍之1——抽象工厂模式实现对数据库访问组件的封装

VC6.0和VS2005:C++和C#编写调用COM组件

使用 C++ - C++/CLI - C# 项目(Borland 和 VS 特定组件)构建问题

在将旧版 C++ 组件之一转换为 C# 时需要建议

基于组件的设计(C# 游戏引擎)