jna 调用dll 输出参数问题

Jianlinwei 发布于 2018/03/05 11:51
阅读 2K+
收藏 1
JNA

有大神在吗 ?跪求。

在c++中  lj_face_t 是一个结构体 ,里面有很多属性。就是用jna调用该函数,怎么获取到结构体中的属性值??

我用byvalue 去传接收不到( 都是0,函数是调用成功了的).

 

用过jna 的大神求解  ?? 谢谢

加载中
1
AbeJeffrey
AbeJeffrey

指针接收数据读取方式:

Pointer[] pointers = ljfacepp.getPointer().getPointerArray(0,p_face_count);
for (int i = 0; i < pointers.length; i++) {
    LJFaceT ljFaceT = new LJFaceT();
    ljFaceT.write();
    Pointer p = ljFaceT.getPointer();
    p.write(0, pointers[i].getByteArray(0, ljFaceT.size()),0, ljFaceT.size());
    ljFaceT.read();
}

 

0
AbeJeffrey
AbeJeffrey

结构体定义发出来看看

Jianlinwei
Jianlinwei
public class LJFaceT extends Structure { public LJRectT.ByValue rect ; public float confidence ; public LJPontifT[] landmarks = new LJPontifT[5]; public int yaw ; public int
0
linkiang
linkiang

JNAerator

Jianlinwei
Jianlinwei
好的 我先看看
0
Jianlinwei
Jianlinwei

引用来自“AbeJeffrey”的评论

指针接收数据读取方式:

Pointer[] pointers = ljfacepp.getPointer().getPointerArray(0,p_face_count);
for (int i = 0; i < pointers.length; i++) {
    LJFaceT ljFaceT = new LJFaceT();
    ljFaceT.write();
    Pointer p = ljFaceT.getPointer();
    p.write(0, pointers[i].getByteArray(0, ljFaceT.size()),0, ljFaceT.size());
    ljFaceT.read();
}

 

sucess

0
WT-lq
WT-lq

strcut BAI_ResultList{
    int eErrorCode;
    int iTestID;
    int iResultNum;
    BAI_ResultItem* pstResultItems;
}

strcut BAI_ResultItem{
    int    eErrorCode;
    char   acAudioUrl[1024];
    float  fMatchedRate;
}

int BAI_Partly_VAd(int kiInput, BAI_ResultList*& rpstResultLists)  

rpstResultLists 这个是输出参数 , 麻烦问一下我该怎么处理

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部