跨平台本机/托管接口

时间:2010-08-31 04:59:49

标签: .net mono c++-cli interop

我有一些本机C ++库,因此我需要向托管(在本例中为C#)代码公开。我需要尽可能多地获得速度。

我想使用一些类来简化交互,这意味着混合代码,但这不是必需的。

最重要的是,它与Windows和Linux是跨平台兼容的。因此,标准/ clr是不可能的。

我的选项是/ clr:pure或/ clr:safe,或者将Mono嵌入到中间层。我的问题是哪个更好(最佳性能,易于开发和以后使用)。

我需要使用的库大量使用指针和偶尔的共享指针,这让我觉得C ++ / CLI层会更容易。我写了一个简单的应用程序测试一些对象的使用,并使用/ clr:pure编译它,它没有链接到本机模块,但确实在Windows和Linux下运行。

1 个答案:

答案 0 :(得分:0)

使用P / Invoke。

使用'pure'会使它比我看到的慢得多,特别是数字运算(加密)。