2015-11-27 58 views
1

我试图在Xamarin Android项目中使用* .so库,就像在Java项目中使用一样。 我试图把库中的路径:LIB/armeabi/library.so,并在文件的属性:在Xamarin Android项目中包含java * .so库

  • 生成操作:AndroidNativeLibrary
  • 复制到输出:始终

而且,我试图将下面的代码来导入的方法,如描述在:

https://stackoverflow.com/a/15902529/5610132

代码:

[DllImport("libVPOS3515.so")] 
public extern static int Lib_McrRead(byte keyNo, byte mode, byte []track1, byte []track2, byte []track3); 

但是,如何使用库中包含的类?

回答

0

如果你的DllImport是:

公众的extern静态INT Lib_McrRead(字节keyNo,字节模式,字节[] TRACK1,字节[]磁轨2,字节[] TRACK3);

事情是这样的:

byte keyNo = {?}; 
byte mode = {?}; 
byte[] track1 = {?}; 
byte[] track2 = {?}; 
byte[] track3 = {?}; 
int retValue = Lib_McrRead(keyNo, mode, track1, track2, track3); 

(我不知道这个参数的值应该是什么什么,当然...)

+0

的问题是,我想用包括在图书馆中的类,而不仅仅是方法。 –

+0

不知道你明白p/invoke interop是什么,请尝试阅读关于class marshalling的知识,也许它会有所帮助:http://www.mono-project.com/docs/advanced/pinvoke/#class-and-structure-marshaling – SushiHangover

+0

你正试图绑定C++类以便在托管代码中使用,然后看看CXXI,这转换成了CppSharp。 http://tirania.org/blog/archive/2011/Dec-19.html和https://github.com/mono/CppSharp – SushiHangover