我刚开始使用.NET,但我对使用MonoTouch / Droid编写可共享一些核心代码的移动应用程序很感兴趣。
我有许多我希望使用的C风格API库,例如libxml2。我如何在Mono中调用这些本地库方法?如果我在Windows上开发,能否使用从Windows编译的相同二进制文件?如果我在OS X上开发,能否使用Windows二进制文件?
我刚开始使用.NET,但我对使用MonoTouch / Droid编写可共享一些核心代码的移动应用程序很感兴趣。
我有许多我希望使用的C风格API库,例如libxml2。我如何在Mono中调用这些本地库方法?如果我在Windows上开发,能否使用从Windows编译的相同二进制文件?如果我在OS X上开发,能否使用Windows二进制文件?
.a ,类似于Windows上的 .lib ),因为Apple iOS不允许链接用户提供的动态库(OSX / iOS上的 .dylib 和Windows上的 .dll )。
我在Windows开发时是否可以使用从Windows编译的相同二进制文件?
Windows生成的二进制文件应该可以在Windows上的Mono上正常运行。您也可以在Windows上使用Microsoft .NET。
如果我在OS X上开发,是否可以使用Windows二进制文件?
如果二进制文件是.NET编译代码,那么可以 - 只要您的p / invoke声明是可移植的(例如32位与64位类型)。
如果二进制文件是本机代码,则不行。请记住,Mono不是Windows模拟器。它运行CIL代码,位于.EXE或.DLL中,但它不会运行本机Windows代码或提供对Windows本机API的访问(在Windows之外)。