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

时间:2012-09-10 19:24:23

标签: java dll x86 java-native-interface 64-bit

我有一个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

1 个答案:

答案 0 :(得分:2)

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

与子流程进行通信的一些建议如下:Running bash from Java