先将C++程序编译成.dll文件,然后在java文件中定义native方法进行调用,也就是使用JAVA中的JNDI技术,这种实例在java 2 核心技术(II卷)中的最后两章有,你可以看看

解决方案 »

  1.   

    声明一个native的方法,如public native int methodA();
    然后javac编译以后,用javah来运行之(和java运行一样的格式)生成一个.h文件
    根据这个.h文件编写一个新的针对java的dll,然后在这个dll里面才调用你的C++的DLL
      

  2.   

    1、编写java类
    2、javac 编译编写好的类
    3、通过javah -jni 得到.h的头文件
    4、根据头文件编写c或c++类
    5、将c或c++类编译成dll
    现在关键是我在第四步,怎么根据头文件编写C++类,并在这个里面引用已经有的C++的DLL?
      

  3.   

    JNI的干活!
    嘿嘿,别急,我给你写啊.//用NativeDemo.dll的test()方法
    public class NativeDemo
    {
      int i;
      public static void main(String args[])
      {
        NativeDemo ob = new NativeDemo();
        ob.i = 10;
        System.out.println("I is wahaha,called before"+ob.i);
        ob.test();// call a native method
        System.out.println("I is wahaha,called after"+ob.i);
      }
      public native void test();
      static
      {
       System.loadLibrary("NativeDemo");
      }
    }
    你自己用VC写个DLL试试吧,需要注意的楼上都说了.
      

  4.   

    各位说得很对,我想接着提个问题,就是调用的C++中的方法的参数的问题,如果一个方法中有个指针类型的参数,在JAVA中应该怎么样调用呢?JAVA中不是没有指针吗?
      

  5.   

    JAVA好象无法处理随时变化的内存地址,不太清楚
      

  6.   

    利用jni流程生成的dll,将其作为一个中间层,再去调用需要的DLL,
    因为java不支持地址调用(指针),直接调用dll不现实,需要c或c++搭建中间层。