問題タブ [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++ - ノード C++ アドオンに渡された引数が Infinity または NaN であるかどうかを確認します
(JS ラッパー経由ではなく) ノード C++ アドオンに直接渡された引数が NaN または +/-Infinity であるかどうかを確認するにはどうすればよいですか?
frexp(arg[0]->NumberValue(), &exponent)
指数が 2047 (JS が NaN と Infinity を表す方法) であるかどうかを確認する目的で試しましたが、明らかLocal<Value>->NumberValue()
に double を覆い隠し、exp 値を変更します。
c++ - Node.js Addon の V8 オブジェクトを void * に取得して格納する
JavaScript から Node.js アドオンに渡されたオブジェクトをvoid *
. これをコンパイルできないようです。node-gyp でビルドすると、 が生成されerror: no matching function for call to 'Cast'
ます。
私がやろうとしていることの長いバージョンは、Csound を実行する Node.js アドオンを作成することです。概観すると、Csound は、不透明な Csound 構造体へのポインターを (通常は) 最初の引数として受け取る C 関数で機能します。この構造体には、void *
Csound をホストするプログラムによって設定された任意のデータ「<code>hostData」が含まれます。メッセージの投稿など、Csound が行ういくつかのことは、コールバック (この場合は関数ポインター) で変更されます。Csound の各インスタンスのコールバックを格納する場所が必要なので、誰かが JavaScript からオブジェクトに設定できるようにしようとしていますが、Csound インスタンスのコールバックをこのオブジェクトの隠しプロパティhostData
として設定したいとも考えています。hostData
コードは次のようにする必要があると思います
V8 の内部フィールドを詳しく調べる必要があると思いますが、よくわかりません。
c++ - 新しいバージョンの Nan で Maybe 操作を構成することは可能ですか?
Node 4.0 との互換性のために Nan 2.0 が導入されMaybe
、MaybeLocal
typeと、それらを返すいくつかの関数が導入されました。ただし、それらのほとんどはオブジェクトを受け入れ ないようでMaybe
、場合によってはそれらのメソッドを作成したいと思います。たとえば( a を返す関数があると仮定すると)、代わりにMaybeLocal<String>
やりたいreturn Nan::To<String>(Nan::Get(object, key))
これらの関数のすべてに独自のラッパーを作成せずにこれを行う合理的な方法はありますか?
c++ - オブジェクトがNan 2のコンストラクタのインスタンスであるかどうかを確認するにはどうすればよいですか?
Nan 1.x にはNanHasInstance(Persistent<FunctionTemplate>&, Handle<Value>)
、オブジェクトがコンストラクターのインスタンスであるかどうかをチェックする機能がありました。ただし、その機能は nan 2.0 で削除されており、明らかな代替品はありません。nan はまだこの機能を他の方法で公開していますか? そうでない場合、ノードのバージョン間で互換性があることを確認する他の方法はありますか?
c++ - エラー: C++ で node.js ライブラリを作成中に、%1 は有効な Win32 アプリケーションではありません
Visual Studio でノードを作成し、Visual Studio プロジェクトで適切なパスを設定して、このコードを .node 拡張子で正常にコンパイルしました。
しかし、このコードからこのモジュールを呼び出すと、
上記のエラーが発生しています。あなたの提案をしてください。
c++ - Node.js C++ 拡張機能を Node の内部 OpenSSL 実装にリンクできますか?
OpenSSL にリンクする必要がある C++ で記述された Node 拡張機能があります。Node には、 OpenSSL を使用して実装されたTLS モジュールがあることもわかります。binding.gyp ファイル内の OpenSSL の Node コピーに対して拡張機能をリンクできますか?