1

从 Java 中调用 Corelis Jtag USB-1149.1_1E 的 DLL 方法时遇到问题,即使我可以从 labview 中调用它。Corelis 用户指南scan_multiple中有五个参数。但是data_in是一个返回值,因此,我认为它不应该是一个参数/输入。scan_Multiple()我应该如何用 Java构建我的结构?有多少论据?

文档:

int scan_Multiple(const long n_commands,const unsigned long *method,const unsigned short *data_out,unsigned long *bit_length,unsigned short *data_in)

代码:

public class HelloWorld {

    public native int scan_Multiple(long n1, long n2, short n3, long n4, short n5);

    // private native void print();
    public static void main(String[] args){
        System.loadLibrary("usb1e_sfl_x64");
        HelloWorld sample = new HelloWorld();
        System.out.println("test1");
        long n1 = 1000;
        long n2 = 1000;
        short n3 = 2;
        long n4 = 2;
        short n5 = 2;
        System.out.println(n1 + " " + n2 + " " + n3);
        int test222 = sample.scan_Multiple(n1,n2,n3,n4,n5);
        System.out.println("test2" + n1 + n2 + n3 + n4 + n5 + test222);
        // usb1e_sfl_x64 sample = new usb1e_sfl_x64();
        // int test = sample.scan_multiple
    }
    static{
        // System.loadLibrary("usb1e_sfl_x64");
    }
}
4

1 回答 1

0

尝试使用类包装器将 data_in 装箱

Short n5;

这样参数将通过引用传递,并且应该在函数上返回所需的数据。

于 2017-01-27T20:36:50.617 回答