最近有个项目,要用JAVA去调C的DLL文件,研究了以下,使用了JNI的方法。
数据全都打通了,在CPP的文件中,已经能取到相关数据,但返回给JAVA时得把数据类型转换为JAVA的类型,
String的类型,我知道用env->NewStringUTF();
那请问,我C中的是INT 类型,在这里该如何转换啊。多谢指教

解决方案 »

  1.   

    C里面有个类型叫jint   return一个jint类型就可以了
    #include "stdio.h"
    #include "shishi_Main.h"
    #include "engine.h"
    #include "string.h"
    #include "windows.h"
    JNIEXPORT jint JNICALL Java_shishi_Main_draw
      (JNIEnv * env, jobject out)
    {
    jint i =5;
            return i;
    }
      

  2.   

    JNIEXPORT jint JNICALL Java_shishi_Main_draw
      (JNIEnv * env, jobject out)
    如果上面得类型是
    JNIEXPORT jstring JNICALL Java_shaishi_Main_draw
      (JNIEnv * env, jobject out)
    这种情况下如何返回
    int
      

  3.   

    你试试看C里面有没有这样转换的函数,如果不行的话
    只能在JNI的本地方法中调用JAVA函数了。
    具体怎么调我没仔细研究因为没怎么用到,但是我知道是能调的
    我给你找了个了解的,你去看下吧
    http://blog.csdn.net/zjsjava/archive/2008/05/19/2458822.aspx