微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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是否有这样的限制.

原文地址:https://www.jb51.cc/csharp/94656.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐