問題タブ [jna]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
844 参照

java - Java および gstreamer-java 初期化エラー

インターネットからのストリーミング オーディオを Java (主にインターネット ラジオ局) で再生する小さなアプリを作成しています。サウンドには JNA を使用する gstreamer-java ライブラリを使用することにしました。

gstreamer ライブラリが初期化されているかどうかを確認するために、コードにチェックを含めたいと思います。「Gst.init()」コードを省略した場合 (ライブラリが正しく初期化されていない場合を模倣するため)、アプリケーションは次のメッセージをスローします。

アプリは gstreamer-java ライブラリを呼び出します。エラー メッセージは表示されますが、スレッドは引き続き実行され、CPU を占有します。

エラーをキャッチする方法、またはエラーが発生しないようにチェックを追加する方法はありますか?

別の方法として、「Gst.init()」をメイン クラスに配置することもできますが、これにより gstreamer ライブラリが初期化されることが常に保証されるかどうかはわかりません。

0 投票する
1 に答える
3338 参照

c - Java Native Accessが受け入れるVisual Studioで「Hello Word」dllを作成しようとしています

Linux と Mac でライブラリを正常にコンパイルし、Java Native Access で使用しました。残念ながら、Visual Studio のコンパイラと Java Native Access では何も動作しないようです。

基本に戻って、Visual Studio で Java Native Access が動作する超単純な dll を作成しようとしています。

GimmeFiveDll.c は次のとおりです。

SystemLibrary.java は次のとおりです。

私はすでに Visual Studio で呼び出しインターフェイスを stdcall に切り替えようとしました。新しいプロジェクト ウィザードの空のプロジェクト dll win32 コンソールの既定値から他の変更を加えていません。上記の例では、結果の dll は に従って関数を正しくエクスポートしませんdumpbin.exe /exports。私の実際のプロジェクトはそれらを正しくエクスポートしますが、いずれにしても常に同じ JNA 例外が発生します。

(はい、GimmeFiveDll.dll を System32 に入れました。はい、JNA を使用して、Windows に付属する System32 の他の dll にアクセスできます)。

JNAが好むVisual Studioによって作成されたDLLのこの最小限の例を完成させるのを手伝ってくれる人はいますか?

大変感謝します。

0 投票する
3 に答える
625 参照

java - JNAerator 構造体に名前のない共用体がありません

JNAerator を使用して、C 共有ライブラリから JNA を使用した Java コードを生成しようとしていますが、構造内にネストされた名前のない共用体の生成に失敗したことを除いて、すべて問題ありません。

例:

ヘッダーを変更してユニオンに名前を付けると、機能します。しかし、明らかな理由から、使用しようとしている共有ライブラリを壊さずにヘッダーを変更することはできません。

ヘッダー ファイルと共有ライブラリを名前付きユニオンに変更する以外の解決策はありますか?

0 投票する
2 に答える
1317 参照

java - あるネイティブ ライブラリが別のネイティブ ライブラリに依存する検索パス

私は JNA と Java を使用していますが、この質問はネイティブから非ネイティブへのブリッジに影響すると思います。

lib1.dylib に依存する Java アプリケーションがあり、lib1.dylib は lib2.dylib に依存しています。

Mac の .app ファイル内にすべてを配置したいと考えています。簡単に lib1.dylib を内部に配置し、java.classpath (または NativeLibrary.addSearchPath()) を設定して、lib1.dylib の場所を JVM に伝えることができます。問題は、lib1.dylib の依存関係も指定した場所にあることを伝える方法がわからないことです。その結果、lib1 は正常にロードされますが、オペレーティング システムのライブラリ パスにないため、lib2 が見つかりません。

この問題を克服する方法を知っている人はいますか? 多数の共有ライブラリを使用する大規模なプロジェクトでは、それがたくさん出てくるに違いないと思います。

0 投票する
1 に答える
1210 参照

java - jvm (param -Xmx またはアーキテクチャ 32/64) によって制限された C コードによって JNA (または JNI) に割り当てられたメモリです。

つまり、C 部分で 5 mb を要求する malloc() が次の理由で失敗する可能性があります。

  • jvm は -Xmx32m で実行され、jvm ヒープはすでに 30 MB です
  • 64ビットウィンドウでjvmが32ビットであることと関係があります
0 投票する
2 に答える
918 参照

java - JNAとJNIを混在させることはできますか

JNAを使用してJavaからアクセスするカスタムdllがあります。これまでのところ、すべてが完璧に機能しています。ただし、CコードからJavaクラスを作成したいと思います。これはJNAでは実行できないと思うので、私が行ったのはJNIメソッドを作成することですが、これによりUnsatisfiedLinkErrorが発生します。だから私の質問は:同じDLLにアクセスするときにJNAとJNIを混在させることはできますか?もしそうなら、どうすればそれを行うことができますか?

0 投票する
1 に答える
322 参照

java - 誰かが私が間違ったことを私に指摘できますか?JNAを使用してVBをJavaにマップしてライブラリにアクセスしようとしています

元の動作するVB_Code

Javaコード(簡略化)

lib.Inventoryを実行すると、エラーが発生します。lib.Inventoryは、RFIDリーダーからタグを取得するために使用されます。タグがない場合、エラーはありません。

エラーコード

詳細情報を含むエラーレポートファイルは、C:\ eclipse \ worksheet \ FelmiReader\hs_err_pid5744.logとして保存されます。