問題タブ [jnaerator]

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 投票する
2 に答える
1266 参照

java - JNA C int* から JNA 構造体に移動するにはどうすればよいですか

Javaにマップしようとしている次のCコードがあります。

メッセージ構造体に相当する JNA は次のとおりです。

彼らが C コードで何をしているのかは知っていますが、Java 側でこれを行う方法がわかりません。Java メッセージ クラスに、渡されたパラメータの長さと配列を含める必要があります。

助けてください!

更新: byte[] を保持するメッセージ構造体の独自のコピーを作成しました:

この構造体を他の構造体とは対照的に渡そうとしますが、明日までテストできません。

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

java - 1 つのヘッダーの下にある複数の動的ライブラリで JNAerator を使用する方法は?

JNAerator を使用して、プロジェクトに含めることができる単一の jar ファイルを生成しています。各オペレーティング システムの動的ライブラリをサポートし、この単一の jar にすべてをアーカイブしたいと考えています。

これまで JNAerator をいじって、次のようなコマンドを使用して単一の動的ライブラリを含めることができました。

ただし、これはパッケージのみですが、複数のシステム ( 、、、および)test.dll用の動的ライブラリがあり、これらをすべて 1 つの jar にパッケージ化してサポートしたいと考えています。test_win32.dlltest_win64.dlllibtest_mac.dyliblibtest_linux_x86.solibtest_linux_amd64.so

JNAerator の 1 回の実行でこの「オールインワン」アプローチを行う方法はありますか、それともプラットフォームごとに異なる jar ファイルを生成する必要がありますか?

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

jna - linux-s390x 固有の libjnidispatch.so を使用して jna-4.1.0.jar を再構築する方法

jna-4.1.0.jar ファイルを再構築して、linux-s390x 固有の libjnidispatch.so ファイルを含めるにはどうすればよいですか。

これは私のアプリケーションの 1 つに必要であり、この libjnidispatch.so ファイルの依存関係に失敗しています。

この質問に従おうとしました: How to use JNAerator with multiple dynamic libraries under one header?

使用する構文:

以下のエラーを取得:

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

java - JNAを使用してネイティブメソッドから返された構造化された可変長配列をマップする方法

配列の長さのフィールドとともに、他の構造体ポインターの配列を含む構造体があります。この構造体は、ネイティブ メソッドによって「out」パラメーターを介して返されます。

元の「C」構造:

JNAerator によって生成された対応する Java クラス:

「C」メソッドのシグネチャ:

Java の使用法:

これにより、「配列フィールドを初期化する必要があります」という JNA エラー メッセージが生成されます。

現在Pointer、配列の代わりに使用し、そこから手動で配列を構築しています:

使用法:

しかし、このアプローチは冗長であり、実際の構造体型ではなく Pointer が使用されているため、満足のいくものではないようです。

JNAでこれを処理する標準的な方法は何ですか?

0 投票する
0 に答える
174 参照

java - java.lang.UnsatisfiedLinkError C++ 関数の JNA へのマッピング

ネイティブ C++ ライブラリを JNA にマップする必要があります。これはライブラリ ヘッダーです。

そして、これは JNAeator で作成した私のマッピングです:

そして、これは DependencyWalker によって検出されたエクスポートされた関数です。

(装飾あり) ここに画像の説明を入力 (装飾なし) ここに画像の説明を入力

この構成でテストを実行しようとすると、次のようになりました。

スレッド「メイン」での例外 java.lang.UnsatisfiedLinkError: 関数 'worm_readData' の検索中にエラーが発生しました

JNAが関数名を見つけられないのはなぜですか?

0 投票する
0 に答える
266 参照

java - JNAerator を使用して Mac OSX でライブラリにアクセスする

ライブラリのヘッダーを使用して JNAerator を実行すると、プロセスがプロセッサ時間を浪費し、最初に警告を発行した後、プロセスが終了しないように見えます。

そのため、-ScanSymbols オプションも試しました。

そして out.jar には非常に多くの .class ファイルがありますが、.java はありません。使用方法がわかりません。

ウィキで提案されているように -noComp -noJar を使用すると、まったく出力が生成されません...

私は何を間違っていますか?それとも、これは絶望的なケースですか?