使用MonoTouch和MonoDroid中的现有c ++库

时间:2012-04-20 12:07:37

标签: c++ mono xamarin.ios pinvoke xamarin.android

Mono noobie在这里,

我想在我为iPhone和Android编写的应用程序中使用现有的c ++库。 我正在尝试找到将其绑定到我的Mono项目的最佳策略,以便从平台到平台的更改将是最小的。

我试图在网上阅读它并遇到了CXXI,P / Invoke等,但无法理解这些方法是否适用于所有平台。另外,我无法弄清楚CXXI是否足够稳定,或者它是否适合MonoDroid和MonoTouch。

您认为哪种方法最方便,最跨平台?

1 个答案:

答案 0 :(得分:5)

目前最简单的方法是在 C ++ 库上编写 C 包装,然后为您的(新)C API编写p / invokes。这种方法用于开发Moonlight(Silverlight的开源实现),其中核心是C ++,但所有内容都以C语言暴露给托管世界。

某些平台会有特殊要求(例如在iOS上你需要建立一个静态库),但这不应该阻止你。

最好的办法是用Swig等工具绑定东西