我在做一个java接口用JNI调用本地的C写的动态连接库c的函数接口是这样的
int test(int dd, struct in_addr sub_ip_addr, char* sub_name, long* total_bytes, datetime* starttime)
我对C不是很熟,写C的人对此接口的描述如下:
int dd, struct in_addr sub_ip_addr, char* sub_name
这三个参数是输入参数 long* total_bytes
datetime* starttime
这两个是输出参数
这个函数的意思我明白,但是我做了这么长时间的java没有写过在参数里还有输出的??
我被他们说晕了,我现在也糊涂了,还有
struct in_addr sub_ip_addr 这个参数,是个结构体
我用java掉的时候应该传什么类型阿,晕
请各位高人指点,在先等,明白了马上结贴
int test(int dd, struct in_addr sub_ip_addr, char* sub_name, long* total_bytes, datetime* starttime)
我对C不是很熟,写C的人对此接口的描述如下:
int dd, struct in_addr sub_ip_addr, char* sub_name
这三个参数是输入参数 long* total_bytes
datetime* starttime
这两个是输出参数
这个函数的意思我明白,但是我做了这么长时间的java没有写过在参数里还有输出的??
我被他们说晕了,我现在也糊涂了,还有
struct in_addr sub_ip_addr 这个参数,是个结构体
我用java掉的时候应该传什么类型阿,晕
请各位高人指点,在先等,明白了马上结贴
int test(int dd, struct in_addr sub_ip_addr, char* sub_name, long* total_bytes, datetime* starttime)
都已经定义成int的了,不是只能返回int的么,怎么还可以返回什么输出参数阿
而且还不是一个,我晕
datetime* starttimetotal_bytes变量指向的是一个long的值,starttime变量指向的是一个datetime结构楼主ms没有学过c啊,你这样的c函数是很难使用jni调用的,自己重新写吧
要是按照我的意思,我自己用java全部就写了,就不用这么麻烦了,上面认为这是对的
int test(int dd, struct in_addr sub_ip_addr, char* sub_name, long* total_bytes, datetime* starttime)
我对C不是很熟,写C的人对此接口的描述如下:
int dd, struct in_addr sub_ip_addr, char* sub_name
这三个参数是输入参数 long* total_bytes
datetime* starttime
这两个是输出参数
这个函数的意思我明白,但是我做了这么长时间的java没有写过在参数里还有输出的??
我被他们说晕了,我现在也糊涂了,还有
struct in_addr sub_ip_addr 这个参数,是个结构体
我用java掉的时候应该传什么类型阿,晕
请各位高人指点,在先等,明白了马上结贴
麻烦你是详细解释下,我只是上学的时候学过C
没有做过C的东西
那什么样的方法才能被jni调用阿 有什么补救的方法么
int test(int dd, struct in_addr sub_ip_addr, char* sub_name, long* total_bytes, datetime* starttime)
这个接口中 char* sub_name 这个我在java里定义成String 的 在C的接口中怎么转化呢我只知道在接口中要写 jstring sub_name 可是要怎么转化呢
const char *theStr;
theStr=(*env)->GetStringUTFChars(env,name ,0);
这样编译就报错,不知道什么原因阿