4

送信機デバイス用の x86 dll があります (C++ で記述されている可能性がありますが、もちろんソースはありません)。私のOSは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 に答える