求教java调用c语法问题,在现线等,非常急

dabinglian 2006-07-04 06:14:59
我在做一个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)
都已经定义成int的了,不是只能返回int的么,怎么还可以返回什么输出参数阿
而且还不是一个,我晕
...全文
159 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dabinglian 2006-07-05
  • 打赏
  • 举报
回复
我把问题缩小一点范围,请问
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);
这样编译就报错,不知道什么原因阿
datalover 2006-07-04
  • 打赏
  • 举报
回复
mark

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧