2017-01-27 12 views
1

Не удалось вызвать метод DLL из Corelis Jtag USB-1149.1_1E из Java, хотя я мог бы назвать его из labview. В руководстве пользователя Corelis scan_multiple имеется пять аргументов. Но data_in - это возвращаемое значение, и поэтому я не думаю, что это должен быть аргумент/ввод. Как я должен структурировать мой scan_Multiple() в Java? Сколько аргументов?Вызов метода Jtag DLL (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"); 
    } 
} 

ответ

0

Try боксировать data_in с классом обертке

Short n5; 

таким образом параметр будет передан по ссылке, и должны иметь по функции возвращают нужные данные.