use*_*169 4 c# mono monodevelop xamarin.ios xamarin.android
我是使用.NET的新手,但我有兴趣使用MonoTouch/Droid来编写可以共享一些核心代码的移动应用程序.
我有许多我希望使用的C风格API库,例如libxml2.如何在Mono中调用这些本机库方法?如果我在Windows中开发,我可以使用从Windows编译的相同二进制文件吗?如果我在OS X中开发,我可以使用Windows二进制文件吗?
如何在Mono中调用这些本机库方法?
您可以使用p/invoke(平台调用)从任何.NET语言调用本机C代码.您需要编写这些声明(找到在您之前完成它的人)来使用本机库.就像@Marcelo评论的那样,对于大多数C库来说,通常都有非常好的,更容易使用的.NET替代品.
这也适用于MonoTouch.但是,您需要提供静态库(.a在OSX上,如.lib在Windows上),因为Apple iOS不允许链接用户提供的动态库(.dylib在OSX/iOS和.dllWindows上).
如果我在Windows中开发,我可以使用从Windows编译的相同二进制文件吗?
Windows生成的二进制文件应该可以在Windows上运行Mono.您也可以在Windows上使用Microsoft .NET.
如果我在OS X中开发,我可以使用Windows二进制文件吗?
如果二进制文件是.NET编译代码则是 - 只要你的p/invoke declrations是可移植的(例如32对64位类型).
如果二进制文件是本机代码,则不.请记住,Mono不是Windows模拟器.它在.EXE或.DLL中运行CIL代码,但它不会运行本机Windows代码或提供对Windows本机API(Windows外部)的访问.
| 归档时间: | 
 | 
| 查看次数: | 950 次 | 
| 最近记录: |