1

ソフトウェア コードには Java と C++ の組み合わせがあります。そこで、JNI を使用して Java から C++ ライブラリを基本的に .dll と .so を呼び出します。solaris では、これで問題なく動作します。.so をロードして Java メソッドから C++ 関数を呼び出すことはできますが、Windows ではライブラリをロードする方法がサポートされていないという r6034 ウィンドウ エラーが発生します。

誰でもここで私を助けてもらえますか?

既に java.exe.manifest を作成し、%JAVA_HOME%/bin に追加しました。

ありがとうニラジ・ラティ

4

2 に答える 2

2

マニフェストは、java.exe ではなく、dll に必要です。

于 2012-06-21T14:23:29.047 に答える
0

ここに java.exe.manifest ファイルがあります

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.4053' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

他のコードは約 50 個以上のファイルがありますが、コンパイルされています。C++ コードは JNI がなくても正常に動作し、Java クラスでさえコンパイルされました。問題は、Java が dll をロードしようとしたときにのみ発生します。

于 2012-06-22T06:13:16.710 に答える