如何设计应从 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# 访问的组件的主要内容,如果未能解决你的问题,请参考以下文章
设计模式在实际业务应用中的介绍之1——抽象工厂模式实现对数据库访问组件的封装