我正在开始一个新项目的工作,其核心产品是软件库.现有的代码我们将用C++编写,因为它是非常密集的数字; 我们拥有并编译这个核心代码.
我相信我们将有两个突出的客户端类型:1.用C++编写的应用程序,可能是MFC 2.用C#.NET编写的应用程序.
问题:为了给这两种客户类型提供"理想"的接口,我们使用什么技术?例如,我们可以提供两个接口,一个使用C/C++函数和C++客户端的回调,另一个使用C#.NET为C#客户端?另外,原则上,这可以在一个DLL中很好地完成,还是我们想要两个(或更多)?
其他信息 ...客户端应用是嵌入式的,而不是台式机或笔记本电脑 假设任何UI不是基于Windows的.此外,我们还必须编译和测试32位和64位,可能是32位的C++和64位的C#.
我在这里道歉 - 我意识到这个问题可能先前被问过并回答过,但如果是这样的话,我无法找到它.
有趣的问题,我期待着其他答案.
一种可能的解决方案,如果可能不是最好的:如果您的库代码遵循面向对象的实践,您可以用C++编写核心功能,然后围绕核心类(也在C++中)提供单独的COM包装类.这将允许您通过COM互操作使用.NET中的库组件.我不知道效率会有多高 - 我怀疑性能通常应该很好 - 而且COM有一些明显的缺点(例如没有泛型),所以这可能不是最佳解决方案.
如果您的库不是面向对象的,您仍然可以使用P/Invoke调用从.NET中的任何DLL导出的单个函数...如果您沿着这条路线走,那么您可能最终会得到一个C#包装器. C++ DLL.
归档时间: |
|
查看次数: |
147 次 |
最近记录: |