別のネイティブ DLL にポインターを渡すことができるように、Java で COM オブジェクトへのポインターを取得する方法を検討しています。
現時点では、JACOB Java COM ブリッジを使用していますが、ネイティブ DLL 関数呼び出しに渡すことができる実際の COM オブジェクトへのポインターを取得する方法については何も気づいていません。
以前、DLL 関数の呼び出しに JNI ではなく Java Native Access (JNA) を使用していましたが、JNA には COM を操作するための機能がいくつかあるように見えます。この JNA COM サポートに関して 2 つの関連する質問があります。COMサポートのドキュメントは限られているため、JNA COMサポートの使用に関するチュートリアルはありますか?どのように使用すればよいかわかりません。
JNA と COM に関連する 3 番目の質問があると思いますが、COM オブジェクトへのポインターを取得して、それをネイティブ DLL C タイプ関数に渡すことはできますか? オブジェクトの継承は、COM が JNA から標準のネイティブ DLL 呼び出しを行うことで機能するように見えるため、ほぼイエスと推測しています。それを明確にしたいだけです。
最後に、JNA は私が見つけた可能な解決策であるため、主に JNA について質問しましたが、JNI を使用するよりもネイティブ DLL 関数を呼び出すために JNA を使用することを非常に好みますが、他の可能性も受け入れます。