如何用java调用windows的dll,例如msimg 我本来想用jni调用dll,但是要用到c,感觉太麻烦了,不知各位有没有调用过dll,谈谈你们是怎样做的,让小弟我借鉴一下. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.loadLibrary("TrayIcon12");//TrayIcon12是dll文件此语句是本人实现在windows的任务栏加入图标时的程序中选出 我做过,必须用jniSystem.loadLibrary("dllname");等等 1.首先的有.dll的.h文件既API说明2.写java代码你的方法应是调用本地方法的如: ...//包装本地方法的java方法void foo(){ nativeFoo();}//声明本地方法的调用方法native void nativeFoo(); ...3.编译上面的.java文件会生成.class文件4.用javah yourclasssname生成jni的头文件*.h5.建立一个c/c++的工程(DLL)实现你的头文件的方法6.编译后生成yourcppname.dll7.把yourcppname.dll考到classpath路径下在2.步的你的.java类中加入static{ System.out.loadLibrary("yourcppname");}后重新编译8.执行重新编译后的.class 一、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 其实我也会用jni调用c写的函数,关键是还要用c去调用dll的api,那不是还要去熟悉vc嘛,真是麻烦呀!! 大家有没有用java调用过windows的msimg.dll,用这个动态库实现颜色渐层. 那在vc中怎样调用dll中的api函数了 layoutContainer方法和container.setLayout方法区别? 关于JAVA参考文档的问题 list 是不是不能用JPopmeun? 请教一个对象的问题? 我的SOCKET server就是不阻塞,在客户端CLOSE情况下还是继续读... 1,000分求助,数据恢复 编译一个socket对话程序时的提示 用java applet写email发送程序怎样通过安全认证? 有谁用过javamail做过邮件系统的请提一下建议,答者有分! 关于java里类数组 很简单的问题,请大家帮忙 散分100求教2个题目 高手指教 谢谢
System.loadLibrary("dllname");
等等
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
在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