利用jawin完成调用window中dll的调用

[转]

[color=red][size=medium]Java/Win32互动项目( Jawin)是一个免费的开源软件工程,用于和微软的COM或者Win32下面的DLL文件互动。[/size]
[/color]
[size=medium]1.可以使用Jawin与诸如微软的办公套件的可交互的脚本进行应用程序进行交互,可以获取Win32 API应用程序功能,如Windows注册表,安全APIs,甚至事件日志,可以使用Jawin处理.NET代码象处理COM对象一样。实事上,Jawin允许JAVA应用程序调用任何基于COM及DLL的代码,而不需要写任何Java本地接口(JNI)代码。使用Jawin你可以调用任何可在Windows环境下编程的组件,你也可以调用任意的COM组件或者是DLL实体指针。
2.Jawin包括一个代码生成器,Java类型查看器,支持为可脚本化或者是非脚本化的COM组件生成根代码,代码生成器读取一个或者是多个类型库,并且自动省略需要用于调用组件的JAVA根。Jawin类型查看器现在还不能为DLL实体指针生成代码,并且并不是支持所有COM组件的参数类型。
[/size]
[color=red][size=medium]jawin 可以对dll中的方法进行调用,也可以调用com中的方法.内部还提供了一个工具,直接对 com组件导出成 java的类.[/size][/color]
[size=medium]下面是我们作的一个测试,很顺利便通过了。
1、下载jawin:http://jawinproject.sourceforge.net/。
2、配置:
》将jawin.jar放于%JAVA_HOME%/jre/lib/ext下 。
》将jawin.dll放于c:/winnt/system32下。否则将出现错误:COMException : no jawin in java.library.path;
也可将jawin.dll放于每个项目目录下。

》至此在Editplus中调试Jawin/NJawin的例子,可以通过。 而在Eclipse中有时还会出上面的错误:COMException : no jawin in java.library.path。
》在Eclipse中,菜单->window->preference->Java->installed JREs 将原来的remove,重新建一个指到你的java sdk目录。
》 ok了。[/size]
3、程序测试:
》调用 dll,dll 的方式不需要导出了,直接调用就可以了,下面是下载的包中提供的一个例子:
/*
* Created on Dec 22, 2005
*
*/
import org.jawin.FuncPtr;
import org.jawin.ReturnFlags;

/**
* @author gf mail to gf@163.com
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class GfJawinTest {

public static void main(String[] args) {
try {
FuncPtr msgBox = new FuncPtr("USER32.DLL", "MessageBoxW");


msgBox.invoke_I(0, "Hello From a DLL", "From Jawin", 0, ReturnFlags.CHECK_NONE);
} catch (Exception e) {
e.printStackTrace();
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值