如何从Java访问64位DLL?

时间:2017-06-07 16:28:18

标签: java dll jna

我使用JDK(64位)并使用JNA库来访问DLL。但是这个dll在C:\ Windows \ SysWWOW64中,所以它是64位。我该如何访问它? 我的处理器是:64位。我的JDK是64位。我的DLL是64位。

我的计划:

 LibraryMethods libMethods = (LibraryMethods) Native.loadLibrary("msxfs.dll", LibraryMethods.class);

我的JNA界面:

import com.sun.jna.Library;

public interface LibraryMethods extends Library{

     public short WFSStartUp(int dwVersionsRequired, String lpWFSVersion);

}

错误:

java.lang.UnsatisfiedLinkError: %1 is not a valid Win32 application.

1 个答案:

答案 0 :(得分:0)

如果库在SysWoW64中,那么它是32位而不是64位。

因此,您需要使用JDK 32位来加载DLL。

您可以在此问题中找到更多info about SysWow64