这段时间学习了JNA,JNA确实比较强大,使用起来也很方便,赞赞赞
前一段时间学习了JNI,做了几个简单的程序,最然说功能上都可以实现,但还是比较麻烦吧,还要用c语言把库文件再包装一边,最麻烦的就是编译了,我查了很多GCC的资料才知道怎么编译,只有加上那几个编译参数才可以使用,真的好麻烦啊。不过我还是没有摸透,有的动态库怎么编译都用不了,不知道怎么回事,而且也没有试验指针、多维数组和结构体等
这次学习JNA,明显效率好多了,而且指针、引用、多维数组都做了实验,很容易用
只要两点记住了就好了:
1,对于输出参数,也就是C语言用引用或指针的参数,都用ByReference作为声明,但调用的时候用对应的类型,比如C++用&double,java就用DoubleByFeference,
2,多维数组一律用一维数组
这段时间把我用到的C++动态库和Fortran动态库都重新包装了一遍
还有一个问题就是,c++用类作为参数的动态库还没有试验,不知道怎么用
前一段时间学习了JNI,做了几个简单的程序,最然说功能上都可以实现,但还是比较麻烦吧,还要用c语言把库文件再包装一边,最麻烦的就是编译了,我查了很多GCC的资料才知道怎么编译,只有加上那几个编译参数才可以使用,真的好麻烦啊。不过我还是没有摸透,有的动态库怎么编译都用不了,不知道怎么回事,而且也没有试验指针、多维数组和结构体等
这次学习JNA,明显效率好多了,而且指针、引用、多维数组都做了实验,很容易用
只要两点记住了就好了:
1,对于输出参数,也就是C语言用引用或指针的参数,都用ByReference作为声明,但调用的时候用对应的类型,比如C++用&double,java就用DoubleByFeference,
2,多维数组一律用一维数组
这段时间把我用到的C++动态库和Fortran动态库都重新包装了一遍
还有一个问题就是,c++用类作为参数的动态库还没有试验,不知道怎么用