CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

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

楼主dabinglian(学习)2006-07-04 18:14:59 在 Java / J2EE / EJB / JMS 提问

我在做一个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的么,怎么还可以返回什么输出参数阿  
  而且还不是一个,我晕  
  问题点数:20、回复次数:2Top

1 楼datalover(白发始立发奋志)回复于 2006-07-04 19:32:12 得分 0

markTop

2 楼dabinglian(学习)回复于 2006-07-05 11:29:13 得分 0

我把问题缩小一点范围,请问  
  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);  
  这样编译就报错,不知道什么原因阿Top

相关问题

关键词

得分解答快速导航

  • 帖主:dabinglian

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo