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