日期:2014-05-20  浏览次数:20651 次

Java如何调用本地dll库里面的方法???
已知本地4个库文件a.dll,b.dll,c.dll,d.dll,接口方法也有文档介绍:
1、bool WINAPI SetType(UINT nType)
功能说明:设置设备类型(该函数必须第一步调用)
参数说明:
nType = 1 (固定值)
返回值:
  true: 成功
  false: 失败 详细错误调用GetError获取

2、bool WINAPI Init(HWND hCallBackWin,UINT nMsgID,DWORD dwPid=0x5aa5)
功能说明: 初始化设备(该函数必须第二步调用,初始化失败不能执行接下来的操作),可通过参数dwPid指定需要初始化的设备.此处dwPid设默认值勤为0x5aa5
参数说明:
HWND hCallBackWin 回调窗口句柄,用个全局变量保存,接来下很多操作都要用到
UINT nMsgID 回调消号,动态库的所用消息都发往这个消息号
DWORD dwPid PID号,默认值为0x5aa5
返回值:
true 初始化成功
false 初始化失败
3、...........................


请问大家在java中如何调用这些方法???在MyEclipse中编写java程序的。

------解决方案--------------------
jni方式,去google搜下就逗明白了。
------解决方案--------------------
传统的做法就是JNI,除了你现有的环境,你还需要C的编译器能编译宿主操作系统的动态库,至于如何使用JNI网上资料一大堆,给你放个链接吧

Best practices for using the Java Native Interface
------解决方案--------------------
1、先写好你的本地Java类接口
2、用javah命令根据接口生成头文件
3、根据头文件编写实现,并编译成dll
4、调用前先System.loadLibrary()加载dll