DVD RWを書き込むためにC++でIMAPI 2.0を使用してDLLを作成しました。私は現在Javaからこのdllを呼び出しています。どのようにしてdllからJavaへの連続的な更新を取得できますか?継続的な更新をdllでJavaに渡すことはできますか? 上記の質問にお役立てください。IMAPI 2.0による書き込みの進行状況を監視し、Javaへの更新を渡します。
答えて
私はコード(長時間終了する)を掘り起こす必要がありますが、JNI経由でスタティックJavaメソッドに関数ポインタを渡してC++ DLLに渡すことは可能です。この関数ポインタを使用して、書き込みプロセスの更新をJavaアプリケーションに渡すことができます。
はあなたが
からDDiscFormat2DataEvents
からクラスを派生し、機能Advise(..)
を使用します(C++で)Javaのを呼んでいるあなたのC++の関数に関数ポインタを追加します。ここでは
は、あなたが何をすべきかですDDiscFormat2DataEvents
インターフェイスのインターフェイス(「DDiscFormat2DataEvents
インターフェイスのUpdate
関数を参照してください)の通知を受信するためのインターフェイスです。あなたは機能
Advise(..)
を使用することができるようにするために、あなたのIDiscFormat2Data
オブジェクトからインターフェースIConnectionPointContainer
、その後DDiscFormat2DataEvents
を照会する必要があります。Update
関数から、Javaアプリケーションに進行状況情報を渡すためのコールバック関数を呼び出すことができます。
注:
C++からの呼び出し「のJavaコールバックは、」Javaは限りこの関数としてのみ、その関数内からコールバックを使用しています(またはC++関数を呼び出す限り、唯一の安全です実行する)。他のすべてのシナリオでは、Java仮想マシンのクラッシュが悪くなります...私はその原因を見いだすことはありませんでしたが、JNIがC++関数呼び出し後に問題を解決すれば、何らかの形で関数ポインタが無効になることが予想されます。
派生クラスが正しく動作するすべて
DDiscFormat2DataEvents
の機能、IDispatch
、およびIUnknown
インタフェースを実装する必要があります。あなたはより多くの私に知らせて助けが必要な場合はあなたも...火傷を中止する
をこのコールバックメカニズムを使用することができます
...
- 1. バネバッチジョブの進行状況を監視
- 2. ハンドブレーキのPython監視の進捗状況
- 3. リモートjarファイルをダウンロードしてダウンロードの進行状況を監視します
- 4. SSISDB実行の進行状況を監視
- 5. カスタム進行状況のJNLP - 進行状況を表示する前にアプレットクラスを読み込みます。
- 6. Tableauのインクリメンタルリフレッシュの進行状況をプログラムで監視できますか?
- 7. MySQLの長いクエリの進行状況の監視
- 8. アップロード後の進行状況を監視した後に、Dropzone.jsのプロキシファイル
- 9. データに対する監査と監視の書き込みと更新
- 10. 進行状況を表示するJTextAreaを更新します。
- 11. Android:CountDownTimerで進行状況バーを更新
- 12. JavaScriptの読み込み進行状況を追跡する
- 13. クラスタのHDFSレプリケーションの進行状況を監視する方法は?
- 14. Python:ファイルに進行状況バーを書き込む
- 15. 新しいインデックスの進行状況
- 16. 進行状況バーがファイルアップロードの幅を更新しない
- 17. Firemonkeyのキューが進行状況バーを更新しない
- 18. SparkR 2.0:進捗状況の進捗
- 19. NSSpeechStatusNumberOfCharactersLeftを使用してNSSpeechSynthesizerの進行状況インジケータを更新します。
- 20. 別のスレッドの進行状況バーを更新する
- 21. MBProgressHUDの進捗状況を更新
- 22. WCFの実行中に進行状況が更新される
- 23. 画面の中央で進捗状況を更新します。
- 24. Android Java:オーディオファイルの再生として進行状況を表示するようにシークバーを更新
- 25. 進行状況バーを更新するには?
- 26. 進行状況バーを動的に更新する
- 27. 進行状況バーを作成する - JDialogを更新する
- 28. JavaScriptがページと進行状況バーを更新しない
- 29. 進行状況のテキストを含む水平進行状況バー
- 30. 私のダウンロード使用状況をPythonで監視します
はあなたの助けをありがとう –