我本来想用jni调用dll,但是要用到c,感觉太麻烦了,不知各位有没有调用过dll,谈谈你们是怎样做的,让小弟我借鉴一下.

解决方案 »

  1.   

    System.loadLibrary("TrayIcon12");//TrayIcon12是dll文件此语句是本人实现在windows的任务栏加入图标时的程序中选出
      

  2.   

    我做过,必须用jni
    System.loadLibrary("dllname");
    等等
      

  3.   

    1.首先的有.dll的.h文件既API说明
    2.写java代码你的方法应是调用本地方法的如:
     ...
    //包装本地方法的java方法
    void foo()
    {
         nativeFoo();
    }
    //声明本地方法的调用方法
    native void nativeFoo();
     ...
    3.编译上面的.java文件
    会生成.class文件
    4.用javah yourclasssname生成jni的头文件*.h
    5.建立一个c/c++的工程(DLL)实现你的头文件的方法
    6.编译后生成yourcppname.dll
    7.把yourcppname.dll考到classpath路径下在2.步的你的.java类中加入
    static
    {
       System.out.loadLibrary("yourcppname");
    }后重新编译
    8.执行重新编译后的.class
      

  4.   

    一、JAVA中所需要做的工作 
      在JAVA程序中,首先需要在类中声明所调用的库名称,如下: 
    static { 
    System.loadLibrary(“goodluck”); 
    }  在这里,库的扩展名字可以不用写出来,究竟是DLL还是SO,由系统自己判断。   还需对将要调用的方法做本地声明,关键字为native。且只需要声明,而不需要具体实现。如下: 
    public native static void set(int i); 
    public native static int get();  然后编译该JAVA程序文件,生成CLASS,再用JAVAH命令,JNI就会生成C/C++的头文件。 .
    .
    .
    .详细操作见
    http://www.pconline.com.cn/pcedu/empolder/gj/java/0506/642328.html
      

  5.   

    其实我也会用jni调用c写的函数,关键是还要用c去调用dll的api,那不是还要去熟悉vc嘛,真是麻烦呀!!
      

  6.   

    大家有没有用java调用过windows的msimg.dll,用这个动态库实现颜色渐层.
      

  7.   

    那在vc中怎样调用dll中的api函数了