問題タブ [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 投票する
3 に答える
5128 参照

java - JavaからWindowsカーネル関数を呼び出す最も簡単な方法は何ですか?

これを行う方法を探しているときに、JNIとJNAのようなさまざまなオプションについて漠然とした議論を見つけましたが、具体的な例についてはあまり説明していません。

コンテキスト:JavaFile.renameTo()がその仕事を実行できない場合(何らかの理由で、少し問題があります)、kernel32.dllで定義されているこのネイティブWindows関数を直接使用することにフォールバックしたいと思います(この回答から):

では、どのようなアプローチを使用しても、Javaコード内からその関数をどの程度正確に呼び出すでしょうか。私は、Java以外のコードや追加の手順(コンパイルやデプロイメントなど)を最小限に抑えた、最も簡単な方法を探しています。

0 投票する
5 に答える
8149 参照

java - JNAで列挙型をマップする方法

私は次の列挙型を持っていますjnaでどのようにマップしますか?

この列挙型は、構造体でさらに参照されます。

アブドゥル・ハリク

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

java - JNI または JNA でウィンドウのタイトルを読み取るにはどうすればよいですか?

開発分野への復帰を目指しています。主に Java を使用してネイティブの win32 関数を呼び出します (.NET でビルドしたくありません)。

Java (JNI/JNA/SWIG) を使用して別の実行中のウィンドウからタイトルを読み取ることができる場所を教えてください。フックしようとしているアプリケーションがメモリ空間のどこにあるかを知っていると仮定します。

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

java - JNA未定義シンボル

JNAを使用してdhcpctlライブラリをJavaにバインドしようとしています。これはmiコードです(まだすべての関数を宣言していません):

dhcpctlは、omapiライブラリを使用してリモートDHCPサーバーを呼び出します。したがって、ライブラリをロードしようとすると、次のようになります。

次のエラーがスローされます。

omapi__type__genericは、omapi.hに格納されている外部変数です。ライブラリをロードするときに、ある種のリンクを実行する必要があると思いますが、その方法がわかりません。

どうもありがとう。

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

java - JNA - アクセス違反、JVM 終端

コールバック関数オブジェクトを渡して DLL を呼び出しています。その機能の1つが簡易印刷です。次に、100回の反復のループがあり、ループの後にインデックスといくつかの印刷物を印刷するだけです。


ここにCコードがあります


ここにJavaコードがあります

出力は数字 0..41 (YES 41!!! 99 ではない) であり、「Java から呼び出された開始」の後に恐ろしいクラッシュが続きます。

私は(ここでも)たくさん読んだことがありますが、問題を見つけることができません。Java6 の JRE を実行しています。私のマシンには1.5GBのメモリがあります。DLL は他のプロセスでは使用されません (同時実行の問題はありません)。

ありがとう、アズリエル

0 投票する
4 に答える
5482 参照

java - JNAを使用してC DLLのchar *をJavaにマップします

C++ の DLL があり、その関数を呼び出す必要がありますchar*。ネイティブ宣言で文字列を使用していますが、出力のようなもの????やがらくたのものを取得しています。文字列をデコードする必要がありますか? 私はすでにシステム プロパティを次のように設定しています。

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

java - JNA ロード .a/.lib ライブラリ

libfaad2 の jna マッピングを作成しようとしています。ライブラリは、mp4 ファイルの解析に mp4ff を使用します。mp4ff は、Windows では libmp4ff.lib に、Linux では libmp4ff.a にコンパイルされます。JNA は .dll/.so ファイルのみを検索します。では、このmp4ffをjnaにロードするにはどうすればよいですか?

編集

この質問には答えがあると思います。私は AAC が嫌いです。ffmpeg を使用して無効なメモリ アクセスのデバッグに 4 日間を費やしました。現在、libfaad はいくつかの奇妙なライブラリを使用しています。:(

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

java - BSD select() を JNA でラップする

JNA を使用して、BSD のような C ソケット API を Java にラップする必要があります。標準の BSD ソケット API と基本的に同じ機能を持っています。

ラッピングは、その引数に必要な構造体と、sを処理するために必要なマスキング関数 (マクロ)select()のために問題があります。ヘッダー ファイル (Ubuntu 8.04 の sys/select.h など) をクロールしようとしましたが、定義はそれほど単純ではありません。特に、JNA の InvocationMapper でラップするときに必要な -macrosの実装を見つけるのが難しいことがわかりました。fd_setFD_*fd_setFD_*

注: 標準の TCP または unix-socket API をラップしようとしているのではなく、カスタムの API をラップしようとしています。このように、Java の組み込みソケットは条件に適合しません。