11

C++ バックエンドと HTML5/JS フロントエンドを持つデスクトップ アプリケーションがあります。現在、Javascript と C++ が通信できるようにするには、Google V8 または Mac Webview と Objective-C を使用する必要があります。ミドルウェアなしでお互いに直接話す方法はありますか?

達成しようとしています:

  1. 変数を共有します。
  2. C++ から JS への関数の呼び出し。
  3. 関数を JS から C++ に呼び出します。

これをグーグルで検索してみましたが、すべてが上記のソリューションを指しています。

4

5 に答える 5

10

C++ オブジェクトにコンパイルされるデータ オブジェクトを作成できるGoogle のProtocol Buffersを使用してみてください。その後、 wikiから次のプロジェクトのいずれかを使用して、javascript でプロトバッファを使用できます。

于 2013-02-20T06:03:05.467 に答える
2

そのためのライブラリを書きました

https://skywarpcpp.wordpress.comをご覧ください

C++ アプリケーション用の SKYWARP++ データ ストリーミングおよび rpc イネーブラー サーバー ライブラリ

githubでダウンロードできます

https://github.com/xjrueda/skywarp_cpp

于 2015-03-04T11:06:31.137 に答える
2

Electronを使用して、基本的に Node.js API に直接アクセスできる Chrome Web ブラウザーを取得できるようになりました。その後、nbindを使用して、JavaScript から C++ コードを簡単に呼び出すことができます。このようにして、両方が同じスレッドとヒープを共有します。

C++11 ソース ファイルに次のようなものを追加して、C++ クラスを宣言します。

NBIND_CLASS(X) {
    construct<int, int>();

    method(Y);
    method(Z);
}

これにより、2 つの int を受け取るコンストラクターと、ほぼすべての種類の引数とオプションの戻り値を持つメソッド Y および Z を使用して、クラス X のバインドが作成されます。

nbindElectron で使用するために、C++ コードを Node.js アドオンにパッケージ化する方法の例が付属しています。

于 2015-09-18T12:20:05.623 に答える
1

これを見てください、私は所有者です

http://code.google.com/p/libjspp/

libjsppを使用すると、C++とjavascriptspidermonkey 1.8.5との簡単なインターフェースと相互作用が可能になりますか?同時にC++とjavascriptの世界に邪魔になりません。オブジェクト指向の方法でJavascriptを埋め込みおよび拡張したいアプリケーションに役立ちます。C ++テンプレートを使用することにより、非常に薄いインターフェイスは実質的にオーバーヘッドがありません。

私は

于 2013-03-08T04:22:41.077 に答える