問題タブ [node-ffi]
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.
javascript - DLL は構造体を返します - node-ffi でそれを読み取る方法は?
ファイルに構造体があり.h
ます:
とtypedef
:
呼び出したい関数のヘッダー:
この関数を で呼び出そうとしているnode-ffi
ので、次のようにしました。
関数を呼び出すとusbLib.usb_relay_device_enumerate()
buffer が返されますが、この結果を javascript オブジェクトにキャストし、またはプロパティ<Buffer@0x000002AB786E2100 28 21 6e 78 ab 02 00 00 40 24 bd 99 fb 7f 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>
を読み取る方法がわかりません。serial_number
device_path
javascript - Node-FFI で SendInput を使用する
FFI パッケージを使用して、nodejs の Windows Api から SendInput 関数を使用したかったのです。
C に関する私の知識は限られているため、どのような問題があるのか を実際に把握することはできません。基本的には、キーボードのキーを仮想的に押しようとしています。
それは私が持っているコードです:
コンソールに「1」と記録されますが、それは機能していることを意味するのでしょうか? メモ帳を開いたときにキーが押されないためです。
node.js - Rust で記述された Node.js 拡張機能でのメモリ リーク
Rust で Node.js 拡張機能を作成しています。このおもちゃのライブラリを C から呼び出して、Valgrind でチェックしたところ、メモリ リークは見つかりませんでした。
Python と Ruby から同じライブラリを呼び出し、無限ループで実行しましたが、メモリ リークの兆候は見られません。(ここでの評判が悪いため、写真を投稿できません)。
同じライブラリが Node.js から呼び出されると、時間の経過とともにメモリ使用量が増加するようです。
時間の単位はループの周期であり、リアルタイムではありません。
Rustコードは次のとおりです。
元の Node.js コードは次のとおりです。
いくつかの情報:
- OS: Debian GNU/Linux (ジェシー)
- Node.js: 7.2.0
- ノード-gyp: 7.2.0
- ffi: 2.2.0
- 参照:1.3.3
- さび: 1.13.0
同じライブラリを C で書き直しました。
また、Node のバージョンを 7.2.0 から 7.3.0 に変更しました。C と Rust の両方を実装した Node.js モジュールのメモリ使用量は次のとおりです。
Node.js コードを変更せずに no-op ライブラリを試してみたところ、驚くべきことがわかりました。