3

私は多数のクラス(150以上)を持つC ++プロジェクトに取り組んでおり、各クラスには10から300程度のフィールドがあります。再コンパイルを必要としないコールバックをコーディングできるように、テスト用のスクリプトインターフェイスを提供できるようにしたいと思っています。私はPythonよりもCAPIに精通しているので、Luaでこれを実行したいと思いますが、頭痛の種を減らすことができれば、Pythonで実行できれば幸いです。

私はC++からLua関数を呼び出す方法とその逆の方法をしっかりと把握しており、基本的なデータ型をやり取りする方法を知っています。私が持っている質問は、SWIGを使用して2つの間でユーザー指定のデータ型を共有する方法です。

たとえば、C ++のある時点で、250個のフィールドを持つオブジェクトのいくつかのメンバーデータを評価したい場合があります。そのオブジェクトをLuaに渡して、生成されたSWIGラッパーを使用してそのオブジェクトを操作し、特定のフィールドを表示してから、(変更される可能性のある)オブジェクトをC++に戻して継続して使用できるようにしたいと思います。 。

また、ラッパーを使用してLuaでオブジェクトのインスタンスをインスタンス化し、それをC ++に渡して、オブジェクトの通常のC++バージョンとして使用できるようにしたいと思います。

これは可能ですか?誰かが私にチュートリアルや明示的な例を教えてもらえますか?

あなたが提供できるどんな助けにも感謝します!

4

3 に答える 3

1

swig で問題が発生した場合は、C++ と Lua をバインドすることのみを目的とした最新バージョンの tolua++ で幸運を祈ります。入力として変更された .h ファイルが必要ですが、これは少し面倒ですが、Swig のモジュールほどではありません。どちらか一方を優先する理由はありませんが、両方について知っておくとよいでしょう。

于 2009-05-19T23:00:32.437 に答える
0

Luabindもチェックしてください。これは Lua 用の OOP を実装しており、クラスとデータ型を Lua から C++ にマップすることができます。

于 2010-03-07T22:12:47.507 に答える