前段时间碰到一客户需要在JAVA语言中调用C++编写的DLL,感觉操作很不方便。于是上网搜索,搜到了JNA的调用,主要文章好像是:http://blog.csdn.net/shendl/archive/2008/12/23/3589676.aspx 其他的文章很多都是雷同的,于是自己也在尝试了一下JNA的使用,具体使用可参考以上地址,现介绍下本DLL中所用类型的对应,均已成功使用。
环境:Eclipes 3.5.2 
 
传入参数: char  * 对应String
传入参数: int  对应int
传出参数: char* 对应 byte []
DLL中使用的是结构体中包含结构体数组,以上博客已有介绍,但是需要注意的是结构体的内存对齐方式。本例DLL中使用的4字节对应方式。那么在JAVA中对用结构体的那个类应该在构造函数中声明:setAlignType(ALIGN_NONE);
这个根据不同的结构体对应方式,类中的对应参数也应该做相应更改,具体可尝试。
如果忽略了内存对齐方式这一点,调试就会浪费不少时间。
至于其他数据类型,因为DLL中没涉及,故没有进行调试。