問題タブ [embind]

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.

0 投票する
1 に答える
2564 参照

emscripten - 2D double 配列でクラスをバインドするときの Emscripten エラー

これには簡単な答えがあるに違いないと確信していますが、ドキュメントやいくつかの最初のグーグル検索で参照を見つけることができませんでした.

基本的に、次のようなクラスがあります。

他にも関数や変数が使用されていますが、JavaScript で直接呼び出されるものはありません。

ここで、オブジェクトを作成して次のようなことができるように、組み込みたいと思います。

だから、当然、私は次のようなことをします:

これらは私のゲッターとセッターです

次に、これらのエラーがあります。

emscriptenで二重配列を処理する方法を知っている人はいますか? ドキュメントの一部を見逃していなかったことを本当に願っています。私がそうしなかった場合、これは組み込みページに含める必要があります。

また、不手際がありましたことをお詫び申し上げます。それは(表面的には)複雑な問題ではありません。どうすればいいのかわからない。

0 投票する
1 に答える
2445 参照

javascript - emscripten Embindを使用してC ++でjavascript関数を呼び出す

この質問には 2 つの部分があります。私がやりたいことは、ほとんどのプログラム ロジックを C++ クラスに配置し、一部のビュー関連関数を js に配置することです (DOM 操作やスタイリングなど)。 hte js コードを使用します (チュートリアルのリソースは本当に限られています)。

チュートリアル ( https://github.com/kripken/emscripten/wiki/Tutorial )に従って val オブジェクトを c++ クラスに渡すことを考えていました。コンパイル時エラーが発生しました

これは私が試した例で、彼らがチュートリアルに載せたものです

そして、次のエラーが発生しました: エラー: 'call' の呼び出しに一致するメンバー関数がありません Math.call("abs",-10); ~~~~^~~~ emscripten/1.5.6/system/include/emscripten/val.h:247:21: 注: 候補テンプレートは無視されました: テンプレート引数 'ReturnValue' を推測できませんでした ReturnValue call(const char* name , Args&&... args) const {

基本的に、コンパイラは「呼び出し」関数の戻り値の型を知らないと言います。何か間違ったことをしたのでしょうか、それとも js コードを操作するためのより良い方法はありますか?

ありがとう、イー

0 投票する
1 に答える
313 参照

javascript - Emscripten と Embind によって生成された .js および .wasm アーティファクトの使用方法は?

2 つの非常に単純な C++ クラス定義とそのインターフェイス、uuid.{hpp,cpp}およびがあり、C++ クラス、関数、および静的関数の定義を JavaScript にバインドするためのuuid_util.{hpp,cpp}ファイルがもう 1 つありuuid_bind.cppます。#include <emscripten/bind.h>

2 つのクラスは最初にスタティック ライブラリとしてビルドされ、uuid_lib.a次に後者の C++ ソース ファイルに対してリンクされ、em++ --bind -o uuid_module.js uuid_bind.cpp uuid_lib.a(CMake が生成する) を使用してビルドされ、 と が生成さuuid_module.jsuuid_module.wasmます。さて、これらをどうするか?

Embind に関するドキュメントはややまばらで、次のようにしか書かれていません

生成されたquick_example.jsファイルは、ノード モジュールとして、または<script>タグを介してロードできます: ...

Emscripten/Embend と node.js の組み合わせに関するこの Google チュートリアルを見つけて、可能な限り複製しました (私の Linux ディストリビューションは Emscripten を直接提供するため、Docker のビットを除きます)。index.htmlpackage.jsonファイルの両方があり、Chrome から実行する をnpm test起動します。http-server

Emscripten/Embind は、バインドされたクラス、関数 (静的またはその他)、変数の変換レイヤーとして機能し、JavaScript から直接呼び出すことができるという印象を受けましたが、そうではないことが判明しました。 . ここで何かを見逃していますか?私はJSにあまり詳しくありません。私がやりたいのindex.jsは次のようなものです:

index.js

これを実行するとnode index.js、UUID文字列がコンソールに出力されます。


背景として、私CMakeLists.txtuuid_bind.cpp以下を提供しました。

CMakeLists.txt

uuid_bind.cpp