查看了JNI后,感觉都在java 的类中声明了“本地方法”,而我遇到的问题是要使用C++类,而不只是简单的方法。
请诸位赐教啊!

解决方案 »

  1.   

    不可以调用! JNI调用的是C接口,而不是C++接口!要人工的给C++接口,写出一个C接口适配层才可以使用JNI !!!!!!!!!
      

  2.   

    要写C接口,这种方案太麻烦了。
    我查过有个SWIG好像可以做此事,但也是在这个C++类的构造函数上面不能执行。
    比如:
    我们的java类的主函数内容为:

        生成的.dll加载是正确的;
        CXXClass test = new CXXClass(); //就在这里出现了问题。c++的构造函数
       test.sayme();
      

  3.   

    C++的接口是__thiscall的,C接口并且为JNI可以调用的是__stdcall,一调准死机。
      

  4.   

    我看你已经在另外一个帖子中找到解决问题的方案了,SWIG
    这个应该结帖了啊:)
      

  5.   

    SWIG不但可以生成JAVA的接口,还可以生成多种语言的接口,非常不错
      

  6.   

    我这些天正在整SWIG呢?就是发现这个c++构造函数这里遇到了问题。
    你对SWIG熟悉吗?指点一下。
      

  7.   

    用jni调用本地的类 你可以这样做,把你要想要完成的功能在此类中完成,吧这个类注册到你java中的方法所对应的本地方法里
      

  8.   


    问题的前提是:本地的类已经写好了(比如公司老早的底层平台),必须找一个通用的、简单的解决方法才是切实可行的。
    有熟悉SWIG的朋友吗?