3

数年前、私は C++ オブジェクトを Lua に、またはその逆にバインドするために luabind を使用しました。既存の (C++ コードの new 演算子によって割り当てられた) オブジェクトを Lua にバインドし、次のようなスクリプトで使用する方法がありました。

binded_object.property = new_value

現在、スクリプトを追加したい新しいプロジェクトに取り組んでいます。簡単にするために、ブーストや重いテンプレートは必要ありません。私の質問は、Lua C Api のみを使用してそれを行う方法ですか?

残念ながら、私が遭遇したすべての例は、カスタム C++ 型を Lua にバインドし、スクリプトでその型の新しいオブジェクトを作成し、最終的にオブジェクトを C++ に返す方法を示しています。

4

1 に答える 1

1

SWIGが必要です。ブーストなし、重いテンプレートなし、必要なすべてのバインディングのみ、利便性のために自動生成されます。

さて、あなたの質問は完全には明確ではありません.「Lua C Apiのみ」とは、「自分で書いたコードですべてのLua C API呼び出しを手動で行う」ことを意味するかもしれません. それがあなたの言いたいことなら、そこに行ったことがある人からそれを取ってください:あなたは実際にそれをしたくありません. それは困難で報われないものであり、引き換えに何も得られません。SWIG を使用します。必要に応じて、生成されるバインディングを手動で編集できますが、SWIG を使用してください。

于 2013-02-25T16:58:51.437 に答える