gpt4 book ai didi

java - 用于 java (JNI) 的 x86 到 x64 库包装器

转载 作者:搜寻专家 更新时间:2023-11-01 03:26:39 27 4
gpt4 key购买 nike

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

类似于:

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

最佳答案

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

一些与子进程通信的建议在这里:Running bash from Java

关于java - 用于 java (JNI) 的 x86 到 x64 库包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12358152/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com