无法在 AMD 64 位平台上加载此.dll (machine code=0x686)

Can't load this .dll (machine code=0x686) on a AMD 64-bit platform

提问人:Rekha Rajput 提问时间:3/1/2023 最后编辑:BotjeRekha Rajput 更新时间:3/1/2023 访问量:203

问:

使用 Java 代码在带有 AMD 处理器的 Windows Server 2016 上加载 DLL 文件时,我得到了下面。我们正在使用 Microsoft Visual Studio 2017 从 CPP 代码生成 DLL 文件。

原因:java.lang.UnsatisfiedLinkError:\ABCD.dll:无法在 AMD 64 位平台上加载此.dll (machine code=0x686)

当我尝试在带有处理器 Intel(R) Core(TM) i5-10310U 的 Windows 10 上加载时,DLL 工作正常。我是 Microsoft Visual Studio 的新手,所以不确定是什么原因导致了这个问题

我们尝试使用 System.loadLibrary(“filename”) 方法加载

C++ DLL 加载库

评论

1赞 Pepijn Kramer 3/1/2023
问题可能不是实际的处理器,而是可执行文件的格式。如果它是 32 位可执行文件,则只能加载 32 位 dll。而 64 位可执行文件只能加载 64 位 dll。您是否验证了两台计算机上的可执行文件的类型?最后,您可能需要编译这两种类型的 dll,并将正确的 32/64 版本部署到相应的计算机上。
0赞 Botje 3/1/2023
机器代码 0x686 未在机器代码的Microsoft列表中列出。您传递了哪些编译器选项来创建该 DLL?
0赞 Botje 3/1/2023
当你说“AMD处理器”时,你能更准确地说一点吗?
0赞 Rekha Rajput 3/1/2023
@Botje编译设置为默认值

答: 暂无答案