如何从 Java 访问 64 位 DLL?

How to Access 64bit DLLs from Java?

我使用 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.

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

所以需要使用JDK32位来加载DLL

您可以在这个问题

中找到更多info about SysWow64