让 JNA 与第三方 DLL 接口的诀窍是什么?



当尝试与Magtek 32位DLL接口时,我得到以下错误:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Unable to load library 'MCPAPI': The specified module could not be found.

我在相同的代码中与user32.dll接口没有问题(只是调整DLL名称和接口)。似乎表明无法找到DLL,但它绝对在我的jpa .library.path中。我甚至把它转储到Windows系统目录,在user32旁边,但没有成功。

我在这里错过了什么?

jna.library。路径只会影响直接引用的库的加载。依赖库必须在与显式加载的库相同的目录中找到,或者在PATH中找到。

要使您的示例正常工作,MCPAPI必须位于jna.library.path或PATH中,其依赖库必须位于同一目录或PATH中。

如果运行64位jvm,则无法加载32位dll。如果是这种情况,请安装32位jvm

尝试使用System.load(pathtolibrary)代替System.loadLibrary().

最新更新