我有一些本机C ++库,因此我需要向托管(在本例中为C#)代码公开。我需要尽可能多地获得速度。
我想使用一些类来简化交互,这意味着混合代码,但这不是必需的。
最重要的是,它与Windows和Linux是跨平台兼容的。因此,标准/ clr是不可能的。
我的选项是/ clr:pure或/ clr:safe,或者将Mono嵌入到中间层。我的问题是哪个更好(最佳性能,易于开发和以后使用)。
我需要使用的库大量使用指针和偶尔的共享指针,这让我觉得C ++ / CLI层会更容易。我写了一个简单的应用程序测试一些对象的使用,并使用/ clr:pure编译它,它没有链接到本机模块,但确实在Windows和Linux下运行。
答案 0 :(得分:0)
使用P / Invoke。
使用'pure'会使它比我看到的慢得多,特别是数字运算(加密)。