当前位置:  技术问答>java相关

jni调用C程序dll产生的疑惑,300分寻找大虾

    来源: 互联网  发布时间:2015-03-20

    本文导语:  任务:调用一个C写的dll里面的一个方法 步骤:1,写一个newdll包含jni要的接口,再调用olddll      2,用java的native方法调用newdll,结果程序在olddll的        方法里面终止,非正常退出。 java的native方法传递一个Strin...

任务:调用一个C写的dll里面的一个方法
步骤:1,写一个newdll包含jni要的接口,再调用olddll
     2,用java的native方法调用newdll,结果程序在olddll的
       方法里面终止,非正常退出。
java的native方法传递一个String给C,
   fileName=(*env)->GetStringUTFChars(env,jFileName,0);
   abs_rtn=RunDllTest(fileName);//这里终止了程序
   (*env)->ReleaseStringUTFChars(env, jFileName, fileName);
   printf("return:%d",abs_rtn);
最后printf没有输出东西。奇怪的是我用C写的main方法调用该dll结果是
正确的,abs_rtn返回0。
void main(int argc,char *arg[]){
   int abs_rtn;
   abs_rtn=RunDllTest(arg[1]);
   printf("return:%d",abs_rtn);
}  
问题:java传递String和C本身传递有区别吗?先用GetStringUTFChars把String 的unicode转换成ascii码字符串了,其中还存在问题?在java调用中fileName输出是正确的,用printf输出看说明调用和传递成功了,但程序在使用该变量的方法里面终止了,问题何在呢??

|
http://java.sun.com/docs/books/tutorial/native1.1/stepbystep/index.html 
上面都很简单的调用,他问的是调用成功出现的问题。
“在java调用中fileName输出是正确的,用printf输出看说明调用和传递成功了,但程序在使用该变量的方法里面终止了,问题何在呢??”
我看是jvm和C变量转变问题,
fileName=(*env)->GetStringUTFChars(env,jFileName,0);函数有问题
fileName指向的字符串应该复制一份到C程序中

|
http://java.sun.com/docs/books/tutorial/native1.1/stepbystep/index.html

|

jboolean iscopy=JNI_FALSE;
或者JNI_TRUE,不知道有什么不同,看看哪个可以就
用咯

|
fileName=(*env)->GetStringUTFChars(env,jFileName,0);后首先把fileName中的内容memcpy到另一个char*中,另外,你RunDllTest()函数做了什么操作?

    
 
 

您可能感兴趣的文章:

  • 请问如何用jni类来调用一个非java写的外部exe?谢谢!
  • jni的方法,用java调用c的代码,遇到的问题!
  • Linux 下JNI编程调用动态连接库的问题,十万火急
  • 有没有人做过JNI,我要在C++中调用java类方法,那个javai.dll在那里啊?(重分向谢!)
  • jni中调用了MFC,我该如何...?
  • Java使用JNI方法调用DLL问题
  • 为什么我的applet不能进行读操作,但是可以调用jni方法?谁能帮我解决一下,万分感谢!!!
  • LINUX下调用JNI找不到.so的路径
  • JNI:如何在C++中调用Java Method?
  • jni调用dll问题
  • c++ mk文件出错Jni调用产生java.lang.UnsatisfiedLinkError错误解决方法
  • [高分求救啊]jni的C++实现中,调用iconv转UTF-8到GB18030老失败
  • 安卓应用开发通过java调用c++ jni的图文使用方法
  • java jni调用c函数实例分享(java调用c函数)
  • 基于jni调用时,jvm报错问题的深入分析
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 编译JNI.h报大量错
  • JNI的问题
  • JNI++
  • 关于JNI的中文问题(急急急急急)
  • jni 问题 急急急 分数不够可以再加
  • javah -jni myclass???在线...
  • 难道没有人可以告我如何在applet中使用jni方法吗?
  • 听同事说JNI很烂! 很容易出错! 是真的吗? 来着有分!
  • jni的一个小问题--路径问题?
  • 请问JNI是个什么东西?
  • jni难吗?谁有这方面的资料?
  • 哪儿有JNI的资料?
  • 100分求java +VC6.0使用JNI的最简单例子
  • solaris 上编译JNI库的问题
  • JNI 助手类 NativeCall
  • JNI代码生成器 JNIGen
  • JNI编程工具 Janet
  • LevelDB JNI
  • 我在Thinking in Java中遇到的Jni问题!
  • 有请写过jni的朋友


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3