c# – 如何在Mono for Android(monodroid)和MonoTouch中使用本机C库

前端之家收集整理的这篇文章主要介绍了c# – 如何在Mono for Android(monodroid)和MonoTouch中使用本机C库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有兴趣使用Mono for Android和MonoTouch构建可以利用大量C本机库的移动应用程序.有关如何调用方法或将代码整合到iOS或Android上的最终移动应用程序中的具体说明?

我在线看过Xamarin文档,对于我来说,对于编程移动应用程序(Mono for AndroidMonoTouch)来说,这是一个非常神秘的事情.在Visual Studio(这是我最熟悉的)中构建一个monodroid应用程序的情况下,我需要从MonoDroid程序中调用本机函数的具体步骤是什么.对于C库,我可以以.DLL(动态)或.LIB(静态)形式编译.我也觉得动态图书馆不能用于移动应用程序.

解决方法

理论上可以使用P / Invoke来绑定C库,但这并不是一个特别好的方式(因为你将绑定到被破坏的函数名称,这些函数名是非常难以理解的,并且可能会在编译器/ OS之间改变).

推荐的访问C库的方法是创建C API并使用P / Invoke(您可以在Web上找到很多关于如何进行P / Invoking的信息,这里有一个要启动的地方:http://mono-project.com/Dllimport).

此外,对于MonoTouch,不可能使用动态库(这是Apple限制),您必须使用静态库.我不知道Android的Mono是否有这样的限制.

猜你在找的C#相关文章