問題タブ [node.js-addon]
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++ - v8 オブジェクトをカスタム C++ オブジェクトに変換する
私は現在、C++ で記述されたモジュールを開発しています。今のところ運がなくても、 aを からオブジェクトnodejs
に変換する方法を探していました。v8::Object
cv::Mat
opencv
nan ライブラリがオブジェクトの変換に役立つことがわかりましたが、方法がわかりませんでした。私の場合、オブジェクトを変換できるかどうかさえわかりません。
v8ジュースプロジェクトは私の期待に応えますが、放棄されたので、これを行う方法がわかりません.
ここに私がやろうとしていることのスニペットがあります:
StackOverflow でこれについて話しているすべての投稿は古くなっています (古いバージョンやツールはもう機能していません...)
私の質問cv::Mat
は次のとおりです。関数で受け取った引数をオブジェクトに変換するにはどうすればよいですか? 私が望む任意のタイプに?
どんな助けでも大歓迎です、ありがとう!
javascript - v8からjavascriptへのポインターcharを返す方法
v8 から javascript に char ポインタを返したいのですが、うまくいきません。js では結果の長さが良くありません。たとえば、outlength は v8 では 43529 バイトですが、js では 4 バイトしかありません。return String::New((char *)img); の使用は正しいですか?
Javascript:
V8
javascript - ネイティブ Node.js モジュールのプロセスの終了にイベント ハンドラーをアタッチするにはどうすればよいですか?
ネイティブ Node.js モジュールの正しいメモリ管理の実装に取り組んでいます。この質問で説明されている問題に遭遇しました:
node.js ネイティブ アドオン - ラップされたクラスのデストラクタが実行されません
提案された解決策は、ネイティブ オブジェクトのデストラクタを にバインドすることですがprocess.on('exit')
、答えにはネイティブ モジュールでそれを行う方法が含まれていません。
libuv docs も簡単に調べましたが、この点に関しても有用なものは何も含まれていませんでした。
注: オブジェクトを取得することに特に興味はありませんprocess
が、そのようにしてみました:
問題は、オブジェクトを削除しようとしたときに次のメッセージが表示されることです。
私も使用しようとしstd::atexit
ましたが、同じアサーションエラーが発生しました。
これまでのところ、私ができる最善の方法は、 で浮遊ObjectWrap
インスタンスを収集std::set
し、ラップされたオブジェクトをクリーンアップすることですが、上記のエラーのために、ラッパー自体をクリーンアップできませんでした。
では、どうすればこれを適切に行うことができますか?
c++ - 引数を別の関数に渡す
ここでは、ハンドラーに 1 つの引数を割り当てます。
できます
しかし、2 つのパラメーターを割り当てたい! それが私がやろうとした理由です:
しかし、その後、次のエラーが発生します。
私は何を間違っていますか?2 つの引数を割り当てるにはどうすればよいですか? ありがとう
javascript - Node.js >= 0.12.* コールバックを返す C++ アドオンのインスタンス化
コールバックパラメーターが文字列である限り、問題なく動作する次の機能があります。
ノードでの実装:
これにより、次の実装ノードが出力されます。
ただし、今はコールバックを追加したいと考えています。例えば:
これにより、C++ コンパイル エラーが発生します。
これは基本的に、V8::Call が値の配列のみを想定していることを意味します。しかし、関数を返したい場合はどうすればよいでしょうか? 現在のアドオンのドキュメントには例がありません。
c++ - Node.js と C/C++ の統合: コールバックを適切に実装するには?
node.js と統合する C++ 拡張機能を実装しようとしています。この拡張機能は、いくつかのブロッキング呼び出しを内部的に呼び出すため、node.js ワールドへのノンブロッキング インターフェイスを提供する必要があります。
https://nodejs.org/api/addons.htmlで指定されているように、ノンブロッキング コールバックを実装するには 2 つの方法があります。
a) JavaScript 関数への単純なコールバックを使用する。したがって、私の拡張機能は、スレッドを生成してすぐに戻り、そのスレッドにブロッキング コードを呼び出させ、戻り時に JavaScript コールバックを呼び出す必要があります。これは比較的簡単に実装できるようです。
b)libuvライブラリを使用して、私が正しく理解していれば、イベントをnode.jsイベントループに投稿します。libuv のドキュメントを詳しく読んだことはありませんが、これを実装するのは非常に複雑に思えます。
もちろん、私の好みはa)ですが、その意味がわかりません。コールバックが別のスレッドから呼び出され、非ブロッキング IO への node.js 標準アプローチを回避する場合、問題はありますか? または、コードのスレッド化とそのブロッキング呼び出しを適切に処理するために libuv を使用する必要がありますか?
ご助力ありがとうございます。