首先要注意:
editplus打开dll,第二行搜索PE,后面第一个字母,是L是32位
dll是32位的就使用jdk32,64就使用jdk64
1.引入JNA依赖
<!--JNA:调用本地dll-->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.9.0</version>
</dependency>
2.把dll文件放进resourse下
3.创建dll接口,动态创建dll实例,定义dll中的方法
默认的是继承Library,如果动态链接库里的函数是以stdcall方式输出的,那么就继承StdCallLibrary
public interface WinningChssInterfaceDLL extends Library {
WinningChssInterfaceDLL INSTANCE = (WinningChssInterfaceDLL)Native.loadLibrary("native/WinningChssInterface.dll",WinningChssInterfaceDLL.class);
String XTFW_JKHS(String YWGNDM,String YWXML);
void XTFW_KILL();
}
public interface WinningChssInterfaceDLL extends StdCallLibrary {
WinningChssInterfaceDLL INSTANCE = (WinningChssInterfaceDLL)Native.load("native/WinningChssInterface.dll",WinningChssInterfaceDLL.class);
String XTFW_JKHS(String YWGNDM,String YWXML);
void XTFW_KILL();
}
4.使用的时候直接调用
WinningChssInterfaceDLL.INSTANCE.XTFW_JKHS("...","...");