問題タブ [bridj]
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.
c++ - 「クラス」とVC++のクラス名の間にあるものはどういう意味ですか?
Java プロジェクトで使用したいサードパーティの VC++ ベースの DLL とそのヘッダーがあります。BridJ はこれに適したソリューションであることがわかりましたが、ヘッダーが非常に複雑であるため、JNAerator はそれを詰まらせ、100% の CPU でフリーズし、最終的にOutOfMemoryError: Java heap space
. そのため、ヘッダーから必要なもののバインディングを自分で作成する必要があります。
次に、アノテーションを介して BridJ をガイドする必要があります。このために、ヘッダーを調べたところ、次のような理解できない部分が見つかりました。
だから、私が知りたいこと:SomethingStrange
ここでどういう意味ですか? これは別の子名前空間ですか? BridJでこれを正しく接続するにはどうすればよいですか?
java - タイプ Pointer[Float] の式は、Scala で期待されるタイプ Pointer[Float] に準拠していません
私はScalaが初めてで、Javaで実装されたライブラリbridjを使用しようとしています。
これがコードです(allocateFloatsはクラスorg.bridj.Pointerのメソッドです)
これにより、「型 Pointer[Float] の式が期待される型 Pointer[Float] に準拠していません」という結果になります。しかし、以下に示すように aPtr の型を指定しないと、コードはコンパイルされます。
私はオンラインで解決策を見つけようとしましたが、質問はほとんど「型 someClass[T1] の式が期待される型 someClass[T2] に準拠していません」のようなものです。しかし、私の場合、それらは同じタイプです。
助けていただければ幸いです。
jna - ByteBuffer を使用して JNA 呼び出しで文字列を表すと、バッファーに余分な文字が発生する
JNA と Jnaerator を使用して生成されたコードを使用して dll を呼び出しています。メソッドの 1 つは文字列を必要とし、JNA 署名は ByteBuffer を取ります。
ByteBuffer を直接 (ByteBuffer.allocateDirect) および間接 (ByteBuffer.wrap) として割り当てようとしましたが、どちらの場合も、dll に到達する文字列にランダムな文字が追加される場合があります (例: ReceiptÚeœ )。元の byte[] はそこにあります (receipt = 52 65 63 65 69 70 74) が、可変数の追加のランダム バイト (01 da 65 9c 19) もあります。ランダムに文字列が正しく、追加のバイトがありません。
JNAの代わりにBridJを使用して同等のコードを試しました(メソッドのシグネチャはポインター名を取ります)。その場合、正常に動作します。残念ながら、私は com.sun.jna.platform.win32 クラスを使用する必要があるため、BridJ に切り替えることはできません。 -user32-missing-methods )
ネイティブ宣言:
JNAerator JNA コード:
Java 呼び出しが機能しています (ただし非推奨)
Java 呼び出しが機能しないテスト A:
Java 呼び出しが機能しないテスト B:
java - BridJ - Pointer.pointerToAddress(long peer) は非推奨になりました
GitHub の BridJ リポジトリに TaskbarListDemo.javaという例があります。Maven (バージョン 0.7.0) からダウンロードした.jar ライブラリを使用して Netbeans でコンパイルしようとするとPointer.pointerToAddress(long peer)
、この例の 100 行目で使用されているメソッドが非推奨になります。
その場合に使用する正しい方法は何ですか?ドキュメントはそれについて何も説明していません。これらのオプションが利用可能です (非推奨としてマークされていません):
どうもありがとう!
java - Java 9でJavaFXウィンドウのHWNDを取得することは何とか可能ですか?
Java 9 では、プライベート API へのアクセスが制限されます。これは、リフレクションを使用してウィンドウ hwnd を取得する既知の方法が機能しなくなることを意味します。
それらを取得する方法はまだありますか?タスクバーを操作するための API を提供するライブラリがあるため ( Java9が提供するのと同様の方法で)、質問します。Java 9 API はまだ AWT 用なので、Java 9 と JavaFX 用にプロジェクトをセットアップできることを願っています。
以前はプライベート メソッドを呼び出すだけでしたが、これは機能しなくなります。どんな解決策でも大歓迎です。JNA または BridJ を使用して実行できる場合、ネイティブ呼び出しは問題ありません。