問題タブ [tolua++]

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 投票する
2 に答える
859 参照

c++ - C++ ユーザータイプが tolua に登録されているかどうかを確認する方法

tolua++ を使用して、C++ クラスの Lua バインディングを生成します。

C++ クラスがあるとします。

および次の内容の tolua .pkg ファイル

次の関数を検討してください。

さて、実際の質問:

tolua_pushusertype は、3 番目のパラメーターが tolua_cclass の呼び出しで登録された C++ クラスの有効な完全修飾文字列に対応しない場合、Lua で segfault を引き起こします。したがって、パラメータ 3 が「Bar」の場合、segfault が発生します。

私がやりたいことは次のとおりです。

toluaを使ってこれを行う方法はありますか?

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

c++ - tolua ++は代入と不等式演算子を無視しますか?

Lua を C++ クラスに埋め込んでいます。

tolua++ は、クラスのオーバーロードされた演算子を無視しているようです。

tolua++ は次の警告を発行します。

  • **tolua++ 警告: operator= はサポートされていません。無視します
  • **tolua++ 警告: 演算子!= はサポートされていません。無視します

これを回避する方法はありますか?

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

c++ - tolua ++:LuaにエクスポートされたC++クラスにlua関数を追加します

私はtolua++を使用していくつかのC++クラスをLuaにエクスポートしています。

各クラスがluaテーブルとしてlua側に「実装」されているという私の理解。したがって、C ++クラスに新しいメソッドを追加する効果を実現できるように、C ++オブジェクトテーブルに新しい(Lua)メソッドを追加することは可能かどうか疑問に思っています。

クラスFoobarをエクスポートしていると仮定します。

LuaではFoobarのメソッドに次のようにアクセスできます。

Foobarテーブルの「オブジェクト」に新しいメソッド(newmethod1、newmethod2)を追加できるようにしたいと思います

次の質問があります。

  1. 上記の方法で、エクスポートされたC ++オブジェクトの機能を「拡張」することは可能ですか?
  2. Foobarテーブルに新しい関数を追加するにはどうすればよいですか?(私はLuaに比較的慣れていません)
0 投票する
1 に答える
1022 参照

c - 構造体とctor/dtorをtolua++でバインドする

次のようなコードをLuaにバインドするとします。

これらのオブジェクトをLuaスクリプトから作成し、それらの存続期間を明示的に管理したくない。できれば、スクリプトで記述してください

問題:それが期待どおりに機能するためには、bar_createとbar_freeがbarのコンストラクタ/デストラクタであることをtolua++に伝える必要があります。それ、どうやったら出来るの?クラスの場合、tolua++は自動的にctor/ dtorを使用すると主張しますが、構造体の場合はどうでしょうか。

私が思いつくことができる最も良いことは、foo.pkgのこの定義です:

つまり、create()とfree()を明示的に呼び出す必要があります。

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

tolua++ - Tolua++ と __tostring

ここで tolua++ と __tostring の使用を手伝ってくれる人はいますか?

C++ オブジェクトからバインドされた Lua オブジェクトのメタテーブルに __tostring プロパティを設定しようとすると、クラッシュします。

例えば

...クラッシュを引き起こします。

__eq など、既に存在するメタテーブル関数を設定しても問題ないようですが、__tostring や 'foobar' など、まだ存在しない関数を設定すると、クラッシュが発生します。

0 投票する
0 に答える
293 参照

parameters - tolua++ を使用してテーブルを C++ に戻す

文字列のテーブルをパラメーターとして lua から C++ メソッドに戻す必要があります。tolua++ を使用してテーブルを受け入れるメソッドをマークする方法はありますか?

0 投票する
0 に答える
186 参照

lua - tolua++でLuaクラス階層をナビゲートする

Luaで、tolua++からバインドされたC++クラス階層を表すメタテーブル階層をナビゲートする必要があります。

たとえば、tolua++によってバインドされたC++のクラスCFooがあるとします。Luaでは、次のようにこのクラスのインスタンス(userdata型になります)を作成できます。

私はメタテーブルを手に入れることができます:

このクラスのバインドされたメンバーを次のように検査できます。

ただし、mt ["。get"]には、このクラスで明示的にバインドされたメンバーのみが含まれ、親クラスでバインドされたメンバーは含まれません。親クラスのメンバーを含む、すべてのバインドされたメンバーをトラバースする必要があります。

tolua ++ソースコードを調べると、tolua++は「tolua_super」グローバルテーブルにスーパークラス情報を保持しているようです。しかし、これをルア側からどのようにナビゲートするかは明確ではありません。