4

我有一个用于发送器设备的 x86 dll(可能用 C++ 编写,但当然没有来源)。我的操作系统是 Windows 7 x64。我也有 JVM x64。是否可以使用此 x86 dll 将其与 x64 JVM 一起用于本机函数调用?设备制造商不想写 x64 版本。是否可以在 C++ 中编写一个 x64 dll 包装器,它可以从 dll 中的 API 调用一些必需的函数并将它们提供给外部?

就像是:

Java Native Function Call -> MyX64DLLWrapper.dll -> OriginalX86Lib
4

1 回答 1

2

您将不得不在 32 位 JVM 中使用 32 位本机代码。要么编写一个外部 32 位程序来提供 dll 的接口,然后从 JVM 启动程序并与之通信。例如,可以通过 stdout/stdin 做到这一点。这类似于 Erlang 驱动程序,这种方法的一个优点是它可以使系统更加稳定。例如,如果驱动程序崩溃,您可以从 JVM 重新启动它,它不会关闭 JVM。

这里有一些与子进程通信的建议:从 Java 运行 bash

于 2012-09-10T22:45:46.523 回答