日期:2014-05-18  浏览次数:20710 次

关于JNA的问题
本帖最后由 bxl050302030 于 2013-08-05 07:42:13 编辑
问题1:
C中的结构体
struct ABC{int size;
byte* keyHandle}
;
我现在利用java JNA调用一个DLL中的API接口FUN(struct ABC * abc),结构体ABC中的keyHandle需要我自己申请内存,请问利用JNA如何申请内存呢?

问题2:
DLL中的一个接口是
int fun(char* instr, int inlen, char* outstr, int& outlen);

其中outstr和outlen都作为输出,instr和inlen作为输入,利用JNA调用该接口,转换为java形式的函数是否为
int fun(String instr,int inlen, ByteByReference outstr, IntByReference outlen);
???

请同学们帮帮忙,谢谢啦
C Java 内存 JNA JNI

------解决方案--------------------
帮顶
------解决方案--------------------
等大神
------解决方案--------------------
byte *keyHandle; keyHandle= (byte *)malloc(sizeof(byte )*10);
申请内存应该是这样的,好久不接触c语言了。

转换只要参数类型和返回类型一致就行了。
------解决方案--------------------
帮顶 同不会
------解决方案--------------------
使用jna用Structure 对应struct即可,不用分配内存吧 附上jna中类型映射表